Многопользовательское программирование - PullRequest
0 голосов
/ 26 марта 2012

Я впервые пытаюсь сделать многопользовательскую игру на Android.Теперь я подошел к тому, что различные объекты, которые будут отображаться на экране, должны быть одинаковыми на всех устройствах, подключенных к игровой сессии.Я подумал о трех разных решениях:

  1. Программирование сокетов, когда ведущие устройства / хост отвечают за отправку / хранение информации о координатах, отправляют ее на другие устройства.
  2. Программирование сокетовгде все устройства отправляют информацию о координатах друг другу.
  3. Сервер, который хранит информацию о координатах от устройств и распространяет ее на устройства.

Какой из этих методов кажется наилучшим решениемдля моей цели.Или есть еще лучшие методы, о которых я не думал?

Ответы [ 2 ]

3 голосов
/ 26 марта 2012

Помните, что большинство, если не все ваши пользователи работают на устройствах с низким энергопотреблением, использующих мобильные сети, которые обычно (иногда?) Ограничены или имеют цену за байт.

Использование одноранговой сети, когда один из пиров выступает в качестве хоста, или все равны, заставит их использовать больше энергии от батареи и байтов от сети. Решение 1 st наказывает одного из пользователей больше, а решение 2 nd наказывает их всех одинаково, хотя, вероятно, в меньшей степени, чем использование одного устройства в качестве хоста.

Использование сервера обменивает расходы пользователей на батарею и сеть с вашими затратами на эксплуатацию сервера.

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

Предполагая, что игра в первую очередь интересная.

2 голосов
/ 26 марта 2012

Также вы можете учесть, что устройства, подключенные к сети через мобильную сеть, а не через WLAN, вероятно, находятся за NAT провайдера, и вы не можете просто открыть для них сокет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...