Когда использовать главный клиент Photon Networking?

Я пытаюсь понять, что такое главный клиент Photon Networking. В документации указано следующий сценарий использования этого термина:

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

Зачем мне делегировать некоторые функции сервера одному из клиентов? Разве Photon Server не должен быть всегда доступен?

Например, в этом руководстве по Photon они используют цитату "очень удобная функция":

PhotonNetwork.automaticallySyncScene = true

Если это так, MasterClient может вызвать PhotonNetwork.LoadLevel (), и все подключенные игроки автоматически загрузят тот же уровень.

Зачем давать одному из клиентов права синхронизировать всех, если для этого у них есть сервер Photon?

Подводя итог, у меня есть 2 вопроса:

1) Что такое мастер-клиент?

2) Каковы некоторые типичные сценарии использования?

Большое спасибо!


person Oleg Glazirin    schedule 10.06.2016    source источник


Ответы (1)


На самом деле Photon server может немного сделать. В основном это только помогает клиентам обмениваться сообщениями.

Поскольку сервер не может запускать игровую логику, у вас есть 2 варианта: либо запускать игровую логику параллельно на всех клиентах, либо выбрать одного клиента, который выполняет все вычисления и отправляет итоговое состояние игры всем другим клиентам. С таким авторитетным клиентом намного проще поддерживать синхронизацию всех клиентов.

Вы не должны сильно заботиться о том, какой клиент является хозяином. Назначается автоматически. Если текущий мастер отключается, следующий клиент в комнате вступает во владение. При необходимости вы по-прежнему можете переключить главный клиент вручную.

При реализации игровой логики используйте свойство PhotonNetwork.isMasterClient, чтобы проверить, является ли текущий клиент ведущим. Если вы хотите инициировать какое-либо действие от неосновного клиента, просто отправьте RPC мастеру с просьбой выполнить действие.

person photonians    schedule 14.06.2016