У меня есть небольшой опыт создания Flash-приложений ВКонтакте. Хочу создать многопользовательское приложение, есть несколько вопросов.
Есть такое приложение "крокодил". Хочу создать что-то похожее. Объясните мне, как там происходят следующие процессы: подбор игроков, взаимодействие с базой данных.
Я понимаю, что для этого приложения нужен сервер. у меня он есть.
Заранее большое спасибо.
Создание многопользовательского приложения
Re: Создание многопользовательского приложения
Стремление есть, но опыта еще не достаточно. Даже объяснив все вы вряд ли справитесь.
Но раз есть желание, можно сделать так:
На примере подбора игрока.
1) Пользователь заходит в комнату с определеным id
2) Обновление информации сервера раз в секунду. Возвращаются игроки которые в комнате с этим id.
3) Если пользователей нужное количество, то они попадают в режим рисования.
4) Если больше пользователей, то берутся псевдослучайные люди или зависящие от рейтинга и тп.
5) Если меньше, то ждем пока не станет нужное количество.
6) Если нужное количество не набралось за нужное время. То вывод, что недостаточно игроков.
Но раз есть желание, можно сделать так:
На примере подбора игрока.
1) Пользователь заходит в комнату с определеным id
2) Обновление информации сервера раз в секунду. Возвращаются игроки которые в комнате с этим id.
3) Если пользователей нужное количество, то они попадают в режим рисования.
4) Если больше пользователей, то берутся псевдослучайные люди или зависящие от рейтинга и тп.
5) Если меньше, то ждем пока не станет нужное количество.
6) Если нужное количество не набралось за нужное время. То вывод, что недостаточно игроков.
Re: Создание многопользовательского приложения
ой ей ейa1exei писал(а):Обновление информации сервера раз в секунду
упадет же все, бессмысленная нагрузка
тут нужно сокет-сервер писать например на java для серверной части
В таком случае выглядеть будет примерно так:
Подбор игроков
Соединяешься с сокет сервером
Игрок в приложении нажимает хочу играть
приложение отправляет сокет-серверу сообщение о том что игрок хочет играть
сокет-сервер его id заносит в очередь
если игрок не дожидается и уходит, сокет-серверу отправляется сообщение о том что пользователь больше не желает играть и его id вычеркивается из очереди
каждый раз когда происходит добавление в очередь игрока сокет-сервер проверяет есть ли в очереди N или больше игроков
если есть берет N первых игроков, удаляет их из очереди, и сообщает им о том какой у них номер комнаты, оппоненты и всю прочую нужную инфу, а так же проверяет, (на всякий пожарный) сколько игроков осталось в очереди, если опять больше чем N тогда еще раз создает новую комнату
если игроков в очереди меньше N то ждем пока пополнится
как то так)
Re: Создание многопользовательского приложения
Java я думаю еще рано в этом случаи.
Re: Создание многопользовательского приложения
Спасибо a1exei. А еще меня интересует вопрос как выбирается id комнаты?