![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 3
|
Хочу сделать простую игру - крестики-нолики, для связи приложений между собой использую пиринговую сеть.
Пользователь должен придумать и ввести свой ник и нажать подключится, после чего получить ID свободного игрока и обмениваться с ним данными. По какому алгоритму это можно организовать? |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
Вас сейчас затролят. Потому что алгоритм там примерно такой:
- получить имя у пользователя - отправить имя серверу, если имя не занято, пустить пользователя в лобби - запросить список пользователей в лобби - по запросу пользователя начать игру со свободным пользователям отобразить игровое поля - решить какой из игроков ходит крестиками, какой ноликами - отправить ход другому игроку - получить ход от другого игрока ... - если один из игроков выиграл отчистить поле, начать игру заново Т.е. алгоритм там по сути элементарный. А вы наверное что-то другое спросить хотите. Но в целом, крестики-нолики - пошаговая игра, гуглите статьи по peer-to-peer чат, и на его основе делаете что вам надо, только естественно, вместо чат-сообщений клиенты друг-другуг отправляют ходы.
__________________
мой пустой блог Последний раз редактировалось iflamberg; 26.01.2013 в 22:55. |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 3
|
В том то и прикол, что сервера НЕТ, точнее есть, но он только может рассылать всем сообщения которое я на него отправил(при этом передает всем мой ID), оповещать о подключении нового пользователя, передовая его ID(не ник, ни другие данные), о его отключении(тоже передает ID), и через несколько секунд после подключения к серверу оповещает меня о подключении пользователей, которые уже находятся в сети. Если бы можно было бы при подключении(а лучше до подключения) получить сразу список всех пользователей было бы всё проще.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
В том то и прикол, что сервер есть. Да, в п2п траффик идет напрямую от пользователя к пользователю и это круто - нет нагрузки трафика на сервер, короткие пинги и т.д. Но без сервера никак, потому что иначе ты не организуешь лобби и не передашь пользователям их идентификаторы, которые они затем используют для того, чтобы подключиться друг-к-другу. Ну и плюс, собственно, сами идентификаторы выдает сервер, просто у адоба есть бесплатный сервис для этого дела. Так что если ты мне покажешь статью про п2п чат без сервера - с меня пива и большие квадратные глаза.
В общем, для начала рекомендую почитать http://labs.adobe.com/wiki/index.php/Cirrus:FAQ
__________________
мой пустой блог |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 3
|
Я могу использовать сервер, но без возможности подключения к нему через сокеты
Добавлено через 9 минут Если я с помощью запросов к пхп буду добавлять пользователя в лобби, то как их от туда удалять?, например если разорвется соединение с нетом или прервется процесс браузера, я не смогу обработать такое событие. Если запрос с удалением МЕНЯ из лобби будут отсылать другие клиенты, то ктоже его пошлет если я в игре буду один? |
|
|||||
|
Я тоже делаю одно приложение пиринговое, в свободное время. Необходим web сервер для соединения клиентов. Схема простая:
1. Флешка запрашивает у Cirrus адрес для p2p соединения. (Адобовский сервер) 2. Коннектится к нашему серверу, передает полученный id. 3. Сервер получает id, заносит его в базу данных подключенных пользователей и отсылает клиенту список с другими id клиентов. 4. Флешка получает адреса, осуществляет соединение.
__________________
Дети не должны знать о своих родителях |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|