我目前正在設計MMO瀏覽器遊戲階段,遊戲將包括一些實時位置(所以每個單元格的瓷磚數據)和一般世界地圖的地圖。遊戲引擎我更喜歡使用MongoDB來實現持久的數據世界。MongoDB + Neo4J與OrientDB與ArangoDB
我還將實現一個航運模擬(我將在下面進行更多解釋),它基本上是一個Dijkstra模塊,我決定使用圖形數據庫,希望它能使事情變得更簡單,發現Neo4j,因爲它很受歡迎。我很滿意MongoDB + Neo4J的設置,但後來注意到了OrientDB,它似乎同樣適用於MongoDB和Neo4J(這兩個世界都是最好的),它們甚至有用於MongoDB和Neo4J的VS頁面。
問題是,我聽說MongoDB丟失數據的一些恐怖故事(雖然不知道它還是如此),我沒有那麼奢侈。對於Neo4J,我並不是每年12K歐元「啓動友好」成本的大粉絲,儘管我可能沒有擁有數百萬頂點的數據庫。 OrientDB似乎是一個可行的選擇,因爲使用一個數據庫解決方案也可能有一些機會。
在這種情況下,一個邏輯移動可能會跳到OrientDB,但它有一個小社區,tbh沒有找到太多的評論,MongoDB和Neo4J是廣泛使用的流行工具,我擔心OrientDB是否是一個冒險。
我的第一個問題將是如果您有任何關於這些數據庫的經驗/意見。
和第二個問題將是哪個圖形數據庫更適合航運模擬。預計使用的數據庫將計算從任何頂點到任何頂點的最便宜路線並穿過它(經典Dijkstra)。但也必須根據情況改變權重,例如「國家B對A國實行禁運,所以任何源自國家A的項目都不能通過B,在XYZ地區存在洪水,因此不能進行陸地運輸」等。此外,該數據庫預計會緩存結果。我期望不超過1000個頂點但有很多邊緣。
在此先感謝和道歉事先如果問題是有點曖昧
PS:我添加ArangoDB的冠軍,但TBH,沒有多少機會去看看。
後期編輯的18-APR-2016:評價我的問題和發展戰略的迴應後,我決定用ArangoDB作爲他們的路線圖是對我更有前途,因爲他們顯然沒有嘗試添加噸炒作功能半烤。
你也可以看看Structr的JSON/REST後端(https://structr.org,它也是開源的)。它基本上將Neo4j變成一個文檔數據庫。免責聲明:我是該項目的發起人。 – 2014-11-02 22:00:02
您將使用哪種語言?您還應該考慮每個數據庫社區的規模,您能夠輕鬆找到兼容的軟件包,文檔的質量以及驅動程序的成熟度。 MongoDB在所有方面都很成熟,Neo4j(我使用並強烈推薦)可能是第二。正如Michael Hunger所說,不要讓授權頁面嚇到你。 – subvertallchris 2014-11-03 01:29:47
@subvertallchris:目前的計劃是使用node.js和laravel,但可能會切換到純JS解決方案。 – projectUnduli 2014-11-03 08:59:47