2

私はゲームサーバーを開発しています。すべてのプレーヤーの進行状況を保存する必要があるため、質問があります。私の場合に最適なデータストレージソリューションは何ですか?

いくつかの事実:現時点では、すべてのプレーヤーはMYsql-Databaseの行であり、一意のIDと名前を持っています。すべてのプレイヤーには世界があります。すべての世界には、(プレイヤーが前進するにつれて)成長する一連の地域が含まれています。そして、すべての地域には一連の風景が含まれています。ここに問題があります。

新しいランドスケープをできるだけ簡単に追加したいので、この単純な概念があります。doit(Stringコマンド)と呼ばれるメソッドを1つだけ含むインターフェイスlandscape.javaがあります。ランドスケープのすべての実装は、doitメソッドで凝ったことをします。コードを変更する必要があります。

今、私はすべてのプレイヤーの世界を保存する必要があります、ここに私が考えたいくつかのアイデア/オプションがあります

  • すべてをデータベースに保存するには、ランドスケープの実装ごとにテーブルを作成する必要があります。悪い解決策になるだろうimo

  • シリアル化は別のアイデアでした。単純に横向きにキャストすることを心配する必要がないので、完璧です。しかし、私には疑問があります。データをどのように編集する必要があるか、クラスを更新するときに何をするか、データへの変更をどのように展開するかです。

  • Hibernate、JPAなどのフレームワーク(私はそれらについて深い知識を持っていません、これは私の場合に役立つでしょうか?)

  • 自分のファイル形式を書いたり、戦略を変更したり、他のアイデアを書いたりしますか?

最後にいくつかのおそらく重要な情報:

  • 保存されたデータは編集可能である必要があります

  • 保存はタイムクリティカルではなく、通常の時間に実行する必要があります

  • すべてのデータがメモリにキャッシュされるので、私はそれが高速であることを本当に気にしません、それはおそらく信頼できる必要があります

  • 使用できるのはPostgreSQL/Mysqlとファイルシステムです。

私はこの分野の経験がないので、間違った方向に進んでいる場合はヒントを教えてください;)

4

2 に答える 2

2

あるアプローチを別のアプローチよりも選択する必要があることを示唆するものは何もありません。

何人かの人々は好みを持っているでしょう、そして私はあなたが好むものなら何でも行きます。

データをシリアル化する場合は、テキストエディタで簡単に編集できるテキストシリアル化を使用します。例:XML、JSon、CSV。

于 2012-08-08T11:38:18.457 に答える
1

これはすべて漠然としているように聞こえるので、1 つのソリューションを選択して試してみることにします。

後で新しいソリューションに置き換えることができるように、コードが十分に抽象化されていることを確認してください。多くのプロジェクトは、そのライフタイムを通じて (要件と規模の変更に応じて) ソリューションを介して移行されます。重要なのは、それによる混乱をできるだけ少なくすることです。

于 2012-08-08T11:42:05.723 に答える