現在、MMOブラウザゲームの設計段階にあります。ゲームには、リアルタイムの場所のタイルマップ(各セルのタイルデータ)と一般的な世界地図が含まれます。ゲームエンジンは、MongoDBを使用します永続的なデータの世界。
また、基本的にはダイクストラモジュールである出荷シミュレーション(以下で詳しく説明します)も実装します。これは、物事が簡単になることを期待してグラフデータベースを使用することにしました。
私はMongoDB + Neo4Jのセットアップには満足していましたが、その後、MongoDBとNeo4Jの両方のように動作するOrientDBに気付きました(両方の世界で最高ですか?)、さらにMongoDBとNeo4JのVSページもあります。
ポイントは、MongoDBがデータを失うという恐ろしい話を聞いたということです(まだそうなるかどうかはわかりませんが)。そのような贅沢はありません。そして、Neo4Jの場合、私はおそらく数百万の頂点のDBを持っていないでしょうが、「スタートアップフレンドリー」コストの年間12K€の大ファンではありません。 OrientDBは、1つのデータベースソリューションを使用する機会もあるため、実行可能なオプションのようです。
その場合、論理的な動きはOrientDBにジャンプするかもしれませんが、小さなコミュニティがあり、tbhはそれについてあまりレビューを見つけませんでした、MongoDBとNeo4Jは広く使用されている人気のあるツールです、OrientDBが冒険かどうか心配です。
私の最初の質問は、これらのデータベースに関する経験/意見がある場合です。
そして2番目の質問は、どのシミュレーションデータベースが出荷シミュレーションに適しているかを示します。使用済みデータベースは、任意の頂点から任意の頂点への最も安価なルートを計算し、それをトラバースします(従来のダイクストラ)。ただし、「国Bは国Aに禁輸されているため、国AからのアイテムはBを通過できず、地域XYZで洪水が発生し、陸送は不可能です」などの状況に応じて重みを変更する必要があります。結果をキャッシュすることが期待されます。頂点は1000個以下ですが、多くのエッジが必要です。
質問が少しあいまいな場合は、事前に感謝し、事前に謝罪します
PS:タイトルにArangoDBを追加しましたが、tbh、見る機会はあまりありませんでした。
2016年4月18日以降の編集:私の質問と開発戦略への回答を評価した後、ArangoDBを使用することにしました。
免責事項:私はOrientDBの著者および所有者です。
開発者として、一般的に、私はコストを隠し、しばらくの間彼らの技術をいじりまわせる会社が好きではありません、そしてあなたがそれに固くなり次第、お金を求め始めます。実際、非標準の言語またはAPIを使用するアプリケーションを開発するために数か月を投資すると、台無しになります。莫大な費用でアプリケーションを支払うか、移行します。
ご存知のように、 OrientDB は[〜#〜] free [〜#〜]であり、商用でも使用できます。さらに、OrientDBはSQL(拡張機能付き)などの標準をサポートし、メインJava APIはTinkerPop Blueprints、グラフデータベースの「JDBC」標準です。さらにOrientDBもサポートします Gremlin 。
OrientDBプロジェクトは、新しい貢献者とユーザーとともに日々成長しています。コミュニティグループ(サポートを依頼する無料チャンネル)は GraphDB市場で最も活発なコミュニティ です。
GraphDBを使用することに疑問がある場合は、ニーズに近いものを入手して、できるだけ多くの標準を使用することをお勧めします。この方法では、最終的な切り替えの影響は小さくなります。
あなたのユースケースはArangoDBがまさに設計されたものであるかのように聞こえます:同じアプリケーションで異なるデータモデル(ドキュメントとグラフ)が必要なようで、単一のクエリでそれらをミックスしたいかもしれません。これは、ArangoDBとしてのマルチモデルデータベースが輝く場所です。
これまでにMongoDBがうまく機能していれば、外観と操作性が非常に似ているため、すぐにArangoDBに慣れるでしょう。さらに、頂点を1つ(または複数)のコレクションに保存し、エッジを1つ以上のいわゆる「エッジコレクション」に保存して、グラフをモデル化できます。つまり、個々のエッジは、それ自体が単なるドキュメントであり、任意のJSONデータを保持できます。その後、データベースは、必要に応じてJavaScriptでカスタマイズ可能なトラバーサルを提供します。
クエリのバリエーションについては、たとえば、これらの禁輸に関する属性を頂点に追加し、クエリ/トラバーサルをプログラムしてこれらを考慮することができます。
ArangoDBデータベースは、Apache 2ライセンスの下でライセンスされており、コミュニティおよび専門家によるサポートはすぐに利用できます。
より具体的な質問がある場合は、グーグルグループで遠慮なく質問してください
https://groups.google.com/forum/#!forum/arangodb
または連絡
ハッカー(で)arangodb.org
直接。
Neo4jの価格設定は実際には非常に柔軟であるため、ウェブサイトの価格に負けないでください。コミュニティエディションまたはパーソナルエディションを長期間使用することもできます。
Neo4jコミュニティは非常に活発で役に立ち、質問に対するサポートとヘルプを迅速に提供します。パフォーマンスと利便性に加えて、それが最大のプラスだと思います。グラフモデルを使用して一般的に
ユースケースについて:
Neo4jは、世界最大のロジスティック企業の1つによって、このルート計算シナリオに正確に使用されており、全国で毎秒最大4000個のパッケージをルーティングしています。
そして、それは ここGameSysで のような他のゲームエンジンで使用され、ゲーム経済シミュレーションのために、そして別のルーティングのために(地球座標ではなく、Neo4j-Spatialを使用するゲーム世界座標で)使用されます。
なぜそんなにノードが少ないのか興味がありますか?それらはトランスポートポータルのようなものですか?ルートについての詳細とダイナミクス(あなたが言及した基準のような)は、ゲームエンジンのメモリ状態の外部から来ているのでしょうか?
モデルと具体的なユースケースに関する詳細を共有する必要があります。
そして、Neo4jのファウンダーの一人であるEmilと私が両方ともマルチユーザーダンジョン(MUD)の昔からのプレーヤーであることを知るのに役立つかもしれないので、間違いなく私たちの心に近いユースケースです:)