2016-07-16 15 views
1

Playフレームワークを使用してオンラインボードゲームを作成しようとしています。これは私の最初のそのようなアプリケーションです。エンドユーザーには良い応答時間を持つことが重要です。 複数のユーザーがゲームをしたり、異なる場所を購入したり、その場所に住宅やホテルを建てたりする独占のようなゲームを想像してみましょう。 ユーザーがプレーするたびに、そのユーザーに特有のボードの外観が少し変わります。たとえば、ボードに40の場所がある場合、user1がlocation1を購入すると、次のターンにボードは、location1が購入された方法で彼に目を向けるべきです。 ボードの動きは、動きの種類によってゲームをプレイするユーザーによって異なります。ユーザー固有のオンラインゲームデータを保存する場所

ボードデータを取得するたびに応答時間に影響を与えずに、ゲームが進行しているときにユーザー固有のデータを保存する場所はどこですか? キャッシュの場合は、各ユーザーのキャッシュに入れることができる許容データの制限は何ですか?

ありがとうございました

答えて

0

解決策はお使いの環境によって異なります。キャッシュするには、戦略と実装を示す必要があります。

Webアプリケーションが1つのサーバ上でしか動作しない場合は、インプロセスキャッシュを使用して、.NETキャッシュ(.Netを使用している場合)またはmemcacheを実装することができます。しかし、キャッシュデータを共有してアクセスするサーバーが複数ある場合は、out-of-processキャッシュを使用する必要があります。memcacheまたはanyotherキャッシュプロバイダを使用できます。これにより、メモリキャッシュからメモリキャッシュにアクセスできます。応用。

ゲームのモデルをキャッシュに保存し、プレーヤーがそれを変更すると更新します。この方法では、常にモデルの状態を保持し、キャッシュから読み込むことができます。

アプリケーションがキャッシュに依存する場合、キャッシュが使用できない場合はゲーム全体が失われるため、危険になる可能性があるので注意してください。モデルをデータベースに保存してください。ゲームのデータはデータベースに保存できますが、アクションを1回実行するごとに更新する必要はありません。

SQLデータベース(メモリ内のキャッシュより高速ではない)よりもはるかに高速で、キャッシュと比較して永続性の高いNo-SQLデータベースを使用することもできます。ライブゲームのデータをNo-SQLデータベースに保存し、他のデータをSQLデータベースに保存することができます。だから、あなたはミックスソリューションを持つことができます。

+0

ありがとうございます。それは本当に役に立ちます。 –

関連する問題