2015-04-20 1 views
0

Я пользуюсь услугами игровой игры Google - многопользовательский API в режиме реального времени, чтобы добавить многопользовательскую функцию в свои мобильные игры. Двигатель, который я использую, - Unity3D, но мой вопрос не связан с Unity (я так считаю), поэтому это не важно.Google Play Game Services - Многопользовательский режим в реальном времени - Как получить задержку

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

Я знаю, что в других API, таких как Photon, вы можете легко найти задержку получаемого сообщения, но я, похоже, не нашел его в API услуг игровой игры google.

Есть ли способ узнать о задержке полученных сообщений в API сервисов игровых игр google?

Спасибо за ваше время!

ответ

0

Определение задержки сообщений несколько сложнее в случае многопользовательских API Google Real Time, поскольку соединения одноранговые, поэтому большая часть данных перемещается непосредственно от одного игрока к другому. (см. подробности: https://developers.google.com/games/services/common/concepts/realtimeMultiplayer#messaging)

Короткий ответ: вы можете оценить его самостоятельно, добавив порядковые номера в сообщения, а затем обменять разницу во времени, которую каждый клиент испытывал между сообщениями. Я рекомендую измерять несколько сообщений и размеры и не иметь слишком много памяти, так как условия будут меняться. Что-то вроде среднего времени между каждым сообщением для 30-100 сообщений, а затем планируйте самую медленную ссылку.

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

Вы можете оформить https://gamedev.stackexchange.com/questions/58450/mobile-multiplayer-games-and-coping-with-high-latency, который хорошо обсуждает, как справиться с этой ситуацией.

Смежные вопросы