JSON 的数据结构替代方案

Data Structure alternatives to JSON

我和一个朋友目前正在制作一个 Discord Bot(Node.js 和 Discord.js),目的是让玩家玩一个半永久世界的文本角色扮演游戏是由另一个人创建的('Dungon Master' 之类的)。 'DM' 使用 Web 界面中的一些工具创建故事,而玩家稍后可以使用机器人以他的速度随时导航这个世界。

我们目前的想法是创建一个 JSON 'gamefile' 世界,让玩家将其交给 Discord 机器人,然后机器人允许玩家与游戏文件进行交互。

我们的问题: 经过一些测试,我们了解到 JSON 会限制很多事情或者变得异常冗长和复杂。不仅用于文件,还用于 DM 创建。 例如:如果玩家移动梳妆台以找到隐藏通道,下一个去那里的玩家应该会发现梳妆台已经移动了。我们现在需要 JSON 文件中这个房间的 2 个状态。如果玩家随身携带一本书,我们需要 4 个状态。另一个项目,我们需要 8 个。这显然很快就会失控,并且假设每个项目只有 2 个状态。

我的问题: 是否有替代数据结构或方法来保存 'gamefile' 可能在这方面允许更大的灵活性?或者这只是这个概念的固有问题?

您可能想试试 ink,一种叙事脚本语言。几年前我偶然发现了它,它看起来就像是为了描述叙述内容以及状态和所有这些东西而制作的;但我个人从未使用过它,所以我不知道它是如何 feels/behaves 的。

它基本上允许您写下对话和描述,但也允许合并变量、选择和逻辑流程。

您可以将丢失的书籍、移动的梳妆台等作为房间描述中的条件文本,只有在满足该条件时才会呈现,并使用对话框功能进行导航和交互。

官网给出了很好的概述,包括一些例子:https://www.inklestudios.com/ink/

还有一个 node.js 墨水实现:https://github.com/y-lohse/inkjs