存储有向图(游戏树)

时间:2019-11-12 04:18:40

标签: database tree graph-databases

我不熟悉图数据库的概念,想知道这是否是解决我的问题的正确方法,那么,什么是最好的技术?

我正在研究一种游戏,其中玩家可以通过N个状态进行转换,并且图形表示所有可能的状态(顶点)以及从一种状态转换为新状态(边缘)的概率。

每个顶点代表玩家的状态。该状态将包含对玩家可能从该特定状态过渡到的所有可能状态的引用/指针,以及一个函数,该函数计算该玩家可以从该当前状态过渡到的每个状态的概率(边缘)。该功能将采用播放器的某些属性/状态,并确定概率。

我可以很容易地用Java编写这棵树,但是如何将这种结构存储在数据库中,以便每个上线的玩家都可以查询已加载整个游戏树的API /服务器,并可以确定如何移动游戏树。从状态A到状态B的玩家?图数据库?

谢谢!

3 个答案:

答案 0 :(得分:1)

几乎所有现有的图形数据库产品都将支持您的建议。您将简单地定义一组顶点,每个状态一个,并在每个状态上编码一组“属性”,然后在各个状态之间创建边。

通过使用存储在磁盘上的图形数据库(与内存常驻产品相对),您的数据将被安全地保存。

可以找到图形数据库列表here

答案 1 :(得分:1)

您可以使用我们的图形数据库Nebula,这是一个开源项目。如您所说,状态可以是顶点,而状态转换可以是星云图都支持的边。欢迎使用并提出问题^^。

答案 2 :(得分:1)

您的图形大小(顶点和关系的数量)是多少?如果是数千,请尝试jgrapht