Answers:
完全取决于系统的组合方式。如果它是简单的分支,则只需将其视为带有一些标记的线性故事即可准确地告诉您所处的路径(或者如果您希望以这种方式可视化,则为二叉树结构,其中每个节点都是故事选择点,而当前节点在故事中的位置是指向其中一个节点的指针)。可以使用相同的技术将涉及更多的,具有多个可以相互交叉的路径的故事建模为有向无环图。
如果您同时运行多个故事弧,例如典型的“开放世界”任务系统,其中玩家可能一次执行多个任务,该怎么办?如果这些任务没有相互影响,则可以将它们视为单独的线性或分支迷你树。如果他们互相修改怎么办?这是我的首选:
修改后的有向图,其中每个节点代表一个任务。在这里,节点之间有两种基本的箭头:“激活”和“取消激活”。这样,完成一个任务可能会打开新的任务,也可能使不再有意义的旧任务失效(例如,如果您获得了一组任务,每个任务都是为了帮助某些交战的另一面)派系中,如果您想迫使玩家选择一侧并坚持下去,则完成一个任务可能会自动隐藏其他任务。您还需要在每个节点中存储其当前状态:活动(当前对玩家可见),不活动(对玩家从未可见),已完成(玩家已完成任务),失败(玩家已看到任务)但后来又被取消,例如通过完成一个单独的竞争任务而被停用)。
有趣的旁注:每个适用于任务/故事情节的系统,也适用于与NPC对话的树,反之亦然。因此,如果您为自己的游戏找到合适的对话系统,请问问自己是否值得针对故事系统进行修改。
“无冬之夜”工具集包含一种解决该问题的有趣尝试,称为“绘图向导”。它最初并未随工具集一起提供,因此如果几年前进行了一些模块开发,则可能需要再次尝试。这是一篇冗长的教程,涉及设计RPG图的不同组件。
基本摘要是,“情节向导”允许您从上至下构建故事情节和任务。例如,您可以告诉它为“获取10件东西”任务生成相关脚本,这将导致进入fedex,这将导致自定义脚本事件。然后,向导将生成一系列与打印脚本绑定的链接组件,然后允许您将它们放置在世界中。这使您可以轻松地在世界各地移动NPC或敌人,而无需断开任何脚本连接。
我不知道使用这种技术的任何其他商业游戏(大多数似乎使用了大量通过脚本检查的变量),但我一直觉得这是构建完整的rpg或冒险游戏的合理基础风格的游戏。
形式语法是描述情节的基本方法。
例如,弗拉基米尔·雅科夫列维奇·普普(Vladimir Yakovlevich Propp)在“民间故事形态学”中提出了一个典型民间故事的语法。