Google App EngineはオンラインMMOに適したプラットフォームですか?


10

私はJavaをベースにした小さなスケールのMMORPGゲームを作成するいくつかのアイデアを見ています。これは私の学習プロセスを支援するためのサイド/ホビープロジェクトです

私はすでにGAEで遊んだことがあり、簡単なWebアプリを作成しました。これをゲームのプラットフォームとして使用することを考えています。

これは良い考えですか?そのようなプラットフォームを使用するゲームはありますか?これまでのところ制限はありません。自分ではなくGoogleが「所有」できる可能性がある場合を除きます

回答:


3

ある程度、必要な遅延/速度に依存します。

(専用サーバーへの)すべてのhttp要求は、300〜600ミリ秒かかります。600〜900ミリ秒以上のクエリ(多くのクエリがある場合)。同時に、GAEへの単一の接続が30秒未満持続する必要があるため、...

つまり、低速ポーリングを実行する必要があるということです。これは、リアルタイムゲームではなく、ターンベースのゲームでは十分な場合があります。

リアルタイムゲームを行う場合は、HTTPを終了して、TCPまたはUDP(特にUDP)に移動する必要があります。

そうは言っても、遅いレイテンシ/非リアルタイム接続でゲームに十分対応できる場合、GAEはかなり安価にスケーリングし、多くの問題を解決します(データベースのサイズに制限はなく、大量のメールによるスパムの問題はありません) 、など)


リアルタイムが必要な場合、TCPは実際にはオプションではありません。
o0 '。

4
^^^一般的な神話
U62

*リアルタイムのさまざまな値。
DFectuoso 2010

1
パケットを適切に管理すれば、TCPはリアルタイムで適切に処理します。それらを一緒にグループ化できる場合、数ミリ秒以内に同じ宛先に10パケットを送信しても意味がありません。
Stephen Belanger、

@Stephen:そうです。適切な手法を使用すると、接続速度だけが残るという速度と信頼性を実現できます。
Moshe Revah 2011

3

これは厳密にはMMOではありませんが、App Engineをゲームサーバーのバックエンドとして使用することについて最近読んだ記事を1つ紹介します。

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

私はいくつかのプロジェクトのバックエンドとしてGAEを使用してきましたが、どれもMMOではありませんでしたが、一般的に扱いやすく、実験するのが明らかに安く、強力なWeb開発プラットフォームとしてそれを高く評価しています。からのブートストラップ。

@DFectuosoが指摘しているように、リアルタイムMMOの場合、Webサーバーを使用すると、特にApp Engineの方がはるかに問題が発生します。ただし、ターンベースおよび/またはソーシャルMMOは、App Engineを唯一のバックエンドとして使用する可能性があります。

最終的には、ゲームアーキテクチャによって異なります。メインサーバーがApp Engineのようなウェブサーバーである場合、ほぼリアルタイムまたは偽のリアルタイムで行うための戦略があります。

  • リアルタイムの通信をピアツーピアで行うことができ、重要な瞬間にのみサーバーを更新します。
  • 最近「cometリクエスト」とも呼ばれるロングポーリングなどの戦略を使用してリアルタイム通信を試みることができます。この場合、Webサーバーにリクエストを送信し、サーバーは応答を「終了」しないため、非常に長いリクエストが発生します。 / polling、ただしWebサーバーは新しいデータが利用可能になったときに継続的に新しいデータをプッシュできます。(ロードマップによると、より深いコメットのサポートはApp Engineの今後の機能です。)
  • App Engineの場合、XMPP / Jabber(オープンIMプロトコル)を使用して、ゲームサーバーとすばやく(ほぼリアルタイムで)通信することもできます。完全なリアルタイムゲームを構築するのに最適な場所ではないかもしれませんが、App EngineのXMPPサポートで記述された興味深いチャットボットはたくさんあります。

これは、Cometサポートの課題トラッカーです(私はまだ実際の投稿にリンクを埋め込むことができなかったため、明らかにレピュテーションポイントがさらに必要です):code.google.com/p/googleappengine/issues/detail?id=377
WorldMaker
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.