Является ли Google App Engine хорошей платформой для онлайн-MMO?

10

Я смотрю на некоторые идеи по созданию MMORPG-игры малого масштаба, основанной на Java, это побочный / хобби-проект, который поможет моему процессу обучения

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

Это хорошая идея? Есть ли игры, использующие такую ​​платформу? Пока я не вижу никаких ограничений, кроме того, что Google может "владеть" им, а не мной

user155695
источник

Ответы:

3

В некотором роде, зависит от того, сколько задержки / скорости вам нужно.

Каждый http-запрос (к выделенному серверу) занимает от 300 до 600 мс. В движке приложения это больше похоже на 600-900 мс или даже больше (если у вас много запросов). В то же время одно соединение с GAE должно длиться менее 30 секунд, так что ...

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

Если вы хотите сделать игру в реальном времени, вам нужно выйти из HTTP и перейти к TCP или UDP (особенно UDP).

Сказав это, если медленное соединение с задержкой / не в реальном времени достаточно для вашей игры, GAE масштабируется довольно дешево и решает много проблем (нет ограничений на размер БД, нет проблем со спамом при большом количестве писем). , так далее)

DFectuoso
источник
TCP на самом деле не вариант, если вы хотите в реальном времени.
о0 '.
4
^^^ Общий миф
U62
* Для разных значений в реальном времени.
DFectuoso
1
TCP прекрасно справляется в режиме реального времени, если вы правильно управляете своими пакетами. Нет смысла отправлять 10 пакетов одному и тому же месту назначения в течение нескольких миллисекунд, если вы можете сгруппировать их вместе.
Стивен Белэнджер
@ Стефан: верно. Используя правильные методы, вы можете достичь скорости и надежности, и единственное, что вас беспокоит, это скорость соединения.
Моше Рева
3

Это не совсем MMO, но вот одна статья, которую я недавно прочитал об использовании App Engine в качестве серверного игрового сервера:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

Я использовал GAE в качестве бэк-энда для пары своих проектов, ни один из которых не был MMO, но я, безусловно, ценю его как сильную платформу веб-разработки, с которой легко работать в целом, и которая определенно дешева для экспериментов и начальная загрузка от.

Как указывает @DFectuoso, для MMO в реальном времени у вас будут некоторые проблемы с использованием любого веб-сервера, в частности, App Engine. Тем не менее, пошаговая и / или социальная MMO вполне может использовать App Engine в качестве единственного бэк-энда.

В конечном счете, это зависит от вашей игровой архитектуры. Существуют стратегии для работы почти в реальном времени или в режиме реального времени, когда основным сервером является веб-сервер, такой как App Engine:

  • Вы можете осуществлять связь в режиме реального времени в одноранговой сети, обновляя сервер только в ключевые моменты.
  • Вы можете попытаться установить связь в реальном времени с такими стратегиями, как длинный опрос, который в последнее время также называют «кометными запросами», когда вы отправляете запросы веб-серверу, а сервер никогда не «заканчивает» ответ, что приводит к очень длинным запросам. / опрос, но позволяет веб-серверу постоянно выдвигать новые данные, когда они становятся доступными. (Глубокая поддержка комет является новой функцией в App Engine, согласно плану.)
  • В случае App Engine вы также можете использовать XMPP / Jabber (открытый протокол IM) для быстрой связи (практически в режиме реального времени) с вашим игровым сервером. Возможно, это не лучшее место для создания полноценной игры в реальном времени, но есть много интересных ботов, написанных с поддержкой XMPP в App Engine.
WorldMaker
источник
Это средство отслеживания проблем для поддержки Comet (поскольку я пока не могу вставить ссылку в фактическое сообщение - очевидно, нужно больше очков репутации): code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker