Когда пир отключился от комнаты в сервисах google play

В чем разница между отключенным узлом и выходом из комнаты.

если участник отключится от комнаты, каков будет его статус? STATUS_JOINED или STATUS_LEFT?

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

Можно ли повторно отправить отключенному пользователю приглашение и вернуть его в комнату?

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


person EranGL    schedule 05.10.2013    source источник


Ответы (1)


Первое предостережение заключается в том, что многопользовательский API в реальном времени на самом деле не предназначен для пошаговых игр. Таким образом, если кого-то исключили из комнаты, его нельзя будет добавить снова; Кроме того, вы не можете оставаться в комнате, если ваша активность переходит на задний план. Теперь, чтобы перейти к вопросу:

  1. Если участник покидает комнату, его статус STATUS_LEFT. Если они находятся в комнате, но пока недоступны (т. е. игрок еще не является частью графа подключений P2P), они могут находиться в состоянии STATUS_JOINED, но не подключены. Кроме того, из-за ошибки вы можете увидеть участника со статусом STATUS_LEFT, который по-прежнему сообщает о подключении. Таким образом, в вашей логике, чтобы проверить, действительно ли участник находится там, вы должны проверить, что он находится в состоянии STATUS_JOINED и подключен (а не только один или другой).

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

  3. Не существует такого понятия, как «владелец комнаты» — это симметричная сеть P2P. Если игрок A создает комнату и приглашает игроков B и C, игрок A может выйти из комнаты, и комната по-прежнему будет работать для игроков B и C. Нет требования, чтобы создатель комнаты оставался в комнате.

Надеюсь это поможет!

person Bruno Oliveira    schedule 07.10.2013
comment
Бруно, есть ли лучший способ, чем использование многопользовательского API в реальном времени, для реализации пошаговой игры с использованием GPGS? - person Manav Kataria; 15.10.2013