Разработка онлайн карточной игры на андроид - PullRequest
1 голос
/ 04 марта 2011

В настоящее время я разрабатываю многопользовательскую карточную игру для Android с Google App Engine в качестве моего бэк-энда.Я хотел бы знать, какой протокол я должен использовать для связи клиентов Android с сервером, UDP или TCP?Я знаю о «сухих» различиях между ними, но я не уверен, что мне подходит в этом случае.Игра будет состоять из нескольких (более 10) комнат, в которых может разместиться 4-6 игроков.

Ответы [ 3 ]

2 голосов
/ 04 марта 2011

Вы должны убедиться, что Google App Engine поддерживает все, что вы хотите использовать. Есть несколько вариантов того, как это сделать, и некоторые параметры недоступны в GAE. Вы упоминаете, что хотите несколько разных игровых комнат, и я предполагаю, что вы хотите, чтобы это было в режиме реального времени. Google App Engine имеет некоторые ограничения на такие вещи, как потоки и серверы сокетов. Эти ограничения могут затруднить эффективное применение этого типа приложений (без использования «опроса»).

Есть способы обойти это, например, используя Google Channel API: http://code.google.com/appengine/docs/java/channel/

API выглядит неплохо, но он ограничивает ваши возможности хостинга только для Google App Engine, что, я полагаю, не так уж и плохо, и вы всегда можете переписать эту часть вашего приложения позже.

0 голосов
/ 04 марта 2011

С помощью Google App Engine вы можете общаться только с HTTP / HTTPS, связь через сокеты UDP / TCP не допускается.

0 голосов
/ 04 марта 2011

Если вы хотите, чтобы он работал в большинстве случаев, лучше всего использовать HTTP с JSON.С большей вероятностью вы будете уверены, что трафик ваших пользователей будет проходить через прокси-серверы провайдера и т. Д.

Я бы держался подальше от UDP на больших расстояниях.Нет никакой гарантии, что UDP-пакеты будут фактически доставлены клиентам или серверам, и вы даже не узнаете, что они потерялись.Единственный разумный случай для UDP - это если вы разрабатываете игру, в которой все находятся в одной сети.Но тогда вы можете просто собрать TCP вместе и использовать Bluetooth.

...