Нам нужно разработать многопользовательскую игру с производительностью в реальном времени. Это должно работать во всем мире (серверы в Америке, Европе, Азии) и поддерживать огромный трафик. Использование облачных сервисов Google для хостинга.
Мы думаем о таких ссылках, как Jam с Chrome, Chrome Maze или Cube Slam.
Игра:
- 2 игрока бросают вызов расе.
- Нам нужно одновременно отображать прогрессию двух игроков
- Каждый матч может длиться от 30 до 45 секунд.
Хостинг:
Мы, очевидно, будем размещать веб-сайт на AppEngine, автоматическое масштабирование, но думают о 2 решениях для серверов реального времени:
-
Использование веб-серверов с помощью Compute Engine
Как и для Jam с Chrome, Maze и т.д.
Разработка собственных серверов websocket (технология TBD), развертывание в центрах обработки данных в Европе, США, Азии, обработка масштабирования, синхронизация между ними, проблемы с задержкой вычислений на серверах и клиентах и т.д.
Но это довольно технически сложно, так как мы очень короткие по времени, и на данный момент не хватает администратора и сетевого парня. -
Или используя Channel API
Мы понимаем, что это не платформа websocket, а производительность в режиме реального времени ниже.
Но это было бы более простым и безопасным для нас и временем, которое у нас есть.
Итак, мы также хотели бы узнать об этом больше.
В любом случае мы думаем, что мы можем использовать некоторые графические трюки на передних концах, чтобы они выглядели как в реальном времени, но это действительно зависит, если мы имеем латентность 100 ~ 500 мс или 500 мс ~ 10 секунд.
Некоторые вопросы:
- Каковы были бы значения диапазона латентности для разных решений?
(Jam w/Chrome получил 100 мс с GCE, может ли API канала достичь нескольких секунд?) - Как серверы API каналов обрабатывают высокий трафик, как работает масштабирование, может ли латентность идти очень высоко? (нет информации об этом в документах канала?)
- Что делать, если кто-то во Франции играет с кем-то в США, подключаясь к разным серверам, ожидая их синхронизации, как с этим бороться?
- Любые советы или опыт для обмена?
- Любое интересное чтение или просмотр? (видел некоторые, но не очень точные).
- Любое другое решение?
Спасибо за любой комментарий!
ИЗМЕНИТЬ:
- Только 2 игрока, соединенные вместе, потенциально из разных регионов мира, не нуждаются в трансляции.
- Мы могли бы найти некоторые трюки с передней стороны, чтобы избежать обработки на стороне сервера. Это гонка между двумя игроками, поэтому нам просто нужно сравнить их прогрессию, и реальное решение победителя не так важно, поскольку нет никаких реальных вещей, чтобы выиграть, это больше для удовольствия.