3

オンライン フラッシュ ゲームを作成したいと考えています。ソーシャル機能を備えていますが、ゲームプレイは主にシングル プレイヤーになります。たとえば、一度に 2 人のプレーヤーが画面に表示されることはなく、ソーシャル インタラクションは非同期メッセージを介して行われ、リアルタイム チャットなどはありません。ロジックの多くはクライアントで発生し、サーバーはクライアント ロジックを検証しますが、完全に同期する必要はありません。そのため、ポーリングで十分であると考えています。

ソケット サーバーはオンライン ゲームでポーリングを使用するよりも効率的であると多くの場所で読みましたが、それは主に、私が説明したゲームよりも多くのマルチプレイヤー インタラクションを備えた、よりマルチプレイヤーであるゲームに対する考慮事項ですか? 多数のユーザーが同時にオンラインでプレイしているが、それぞれが比較的孤立したゲームをプレイしており、各プレイヤーとリアルタイムで対話していない場合、ポーリングは問題ないか、オンラインがある場合はソケットを使用することをお勧めします。多くの人が同時にプレイすることを想像するゲームは何ですか? ありがとう!

4

1 に答える 1

2

どんな種類のサーバーがありますか? 永続的な接続をサポートしていますか (つまり、単独でループを実行できますか)、それともステートレスモードのみをサポートしていますか (クライアントがポーリングする必要があります)?

ステートフル

Quake / Half-life などのマルチプレイヤー ゲームは、接続するクライアントへの永続的な接続を維持するサーバー上で実行されます。各メッセージの後にディスク/データベースに保存するのではなく、関連するゲームの状態を RAM メモリに保持できるため、これははるかに効率的です。

ステートレス

Web サーバー (PHP など) を使用している場合、クライアント メッセージを待機し、データベースからすべての関連情報をロードし、計算を行ってから、クライアントに応答を返すだけのステートレス モードにほとんど制限されます。この場合、すべての「トランザクション」(クライアント ポーリング) ごとにこれらすべてを行う必要があります。

通信がまばらで単純な場合は、実際にはステートレス サーバーの方が適している可能性があります。実装は非常に簡単です。

于 2010-06-02T13:53:49.773 に答える