Программирование сервера - Простая Многопользовательская Игра - Который протокол и технологии?

У меня есть опыт года при написании клиентского кода, но ни одного с материалом сервера. Я хочу ограничить вопрос немного, таким образом, я упрощу то, чего я пытаюсь достигнуть.

Я хочу записать серверный код, таким образом, что два клиента (Браузер или iPhone / Android) могут соединиться, когда два плеера соединились, они видят, что таймер считает в обратном порядке для обнуления. Часы были бы, синхронизируются на сервере, и клиенты исключительно идентифицировались бы.

Проблема здесь с подключением слова, что люди используют для многопользовательских игр? Открыть сокет TCP для двусторонних связей? Можно сказать, что я не действительно уверен, о чем я говорю. Я надеялся использовать AppEngine, но я не уверен, подходит ли это, поскольку это - базирующийся запрос.

У меня есть некоторый опыт с Java и хотя Erlang походит на лучший выбор, это - что-то, с чем я просто хочу играть и выставить быстро, таким образом, Java был бы легче. Я просто должен знать лучший способ подключить плееры и т.д.

Спасибо,

Gav

11
задан gav 4 March 2010 в 13:32
поделиться

4 ответа

Я предлагаю рассматривать настольные и мобильные системы как равных клиентов. Какие есть варианты?

  • Вы пишете сервер сокетов, который будет принимать соединения от клиентов. Но тогда вам нужно написать еще какой-нибудь сокет-клиент, даже 2х - для десктопа и для мобильной ОС. И пользователю нужно будет установить этот клиент.

  • Вы запускаете веб-сервер (какая технология вам нравится). Он предоставит некоторые веб-службы, которые будут одинаково доступны как для настольных, так и для клиентских ОС. Но все же нужно написать клиентское приложение (опять же 2х).

  • Вы запускаете веб-сервер и делаете все функции доступными по стандартному протоколу HTTP. Таким образом, вам даже не понадобится клиент - почти на каждом компьютере или мобильной ОС установлен хотя бы какой-нибудь веб-браузер. JavaScript обеспечит динамическое обновление вашего тикера.

7
ответ дан 3 December 2019 в 07:37
поделиться

Я ни в коем случае не специалист по сетевому общению, но если вы не против потери нескольких пакетов (или проверки ошибок в программном обеспечении) и вам нужна быстрая и экономичная связь, вы можете использовать UDP . Я думаю, что большинство программ с конфиденциальными данными и потокового мультимедиа используют этот протокол, чтобы избежать задержек и уменьшить размер пакетов.

1
ответ дан 3 December 2019 в 07:37
поделиться

Несколько лет назад я реализовал клиент-серверное приложение с java и ServerSocket ( http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html ). У вас также есть версия SSL.

Итак, вы создаете ServerSocket и ждете подключения. Когда клиент подключен, вы создаете поток, который будет обсуждать с этим клиентом протокол, который вы создали.

http://www.developer.com/java/ent/article.php/1356891/A-PatternFramework-for-ClientServer-Programming-in-Java.htm

Если найдете этот небольшой фреймворк:

http://www.bablokb.de/jcs/jcs.html

Одна из самых сложных вещей - это создать свой протокол, хороший способ научиться его создавать - это понять, как работает FTP (или HTTP. ..).

1
ответ дан 3 December 2019 в 07:37
поделиться

Есть хорошая серия статей о Networking для программистов игр от человека, который зарабатывает этим на жизнь.

6
ответ дан 3 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: