2

MMOゲームにデータ(キャラクターの統計、実績、アイテムなど)を保存することについてどう思いますか?サーバーが何らかの理由でダウンした場合(いつ)、データ損失をできるだけ少なくしたいのは明らかです。

  • 重要なことが起こったときはいつでもキャラクターを保存しますか?パフォーマンス的にはびくびくしているようですか?
  • すべてを一度だけX時間保存しますか?数秒間フリーズしますが、「世界は救われています」というメッセージが表示される可能性があります。
  • たぶん、すべてのキャラクターにセーブタイマーがあり、時々セーブするためにキャラクターをキューに入れ、サーバーはビジーでないときはいつでもこのキューで動作しますか?

これらの3つのうち、最後の1つはかなり良い解決策だと思いますが、何かを見落としている可能性があります。しかし、あなたの考えはどうですか、「ビッグボーイ」はそれをどのようにやっていますか?

4

4 に答える 4

3

重要なことが起こったときはいつでもキャラクターを保存しますか?パフォーマンス的にはびくびくしているようですか?

少なくともではありません。そのようなゲームのために行われなければならない他のすべてと比較して、これはまったく些細なことです。まともなデータベースエンジンならどれでもそれを処理します。それが彼らが行うために構築されたものです。

于 2011-01-28T21:16:09.897 に答える
1

データベースにはライトスルーキャッシュを使用します。キャラクターのほとんどの側面はあまり頻繁に変更されません。ポジションのように、サーバーとクライアント間で一貫性を保つために、すでにかなり重いエンジニアリングが必要です。

于 2011-01-28T20:53:42.910 に答える
1

多分一種のキャッシュサーバーを作るでしょう。ゲームサーバーは読み取り/書き込み要求をキャッシュサーバーに送信し、キャッシュサーバーはdbからの書き込み/読み取りを行い、ゲームサーバーに送り返します。このように、特定のクエリが遅くなった場合、サーバーがダウンした場合でもゲームサーバーのスレッドを停止しません-caheサーバーはデータをキャッシュし、まだ保存されていない場合は保存します。

于 2011-01-28T21:06:59.590 に答える
0

私はこのhttp://onemanmmo.com/?doubleentryを書き、マイクロトランザクションを記録する方法を解決し、ゲームのサーバークラッシュに耐えられるようにしました。この記事では、MySQL上で複式簿記データベーススキーマを使用し、ストアドプロシージャとセキュリティに関する情報を提供しています。

于 2012-03-02T09:18:23.313 に答える