我设计了一款具有多个故事线索的RPG游戏,这意味着,根据用户的选择,某些事情可能会或可能不会发生,您可以通过多种方式实现同一件事,结局可能会有所不同等等。
我实现了一个简单的决策引擎,该引擎运行良好,但存在一个巨大缺陷,当您做出决定时,故事会立即受到您的决定的影响,这意味着您无法做出会在不久的将来影响您的决定。这是因为故事像树形结构中的分支一样展开,并且始终需要知道下一个节点。在幕后,决策是使用队列来实现的:每个节点都知道上一个节点和下一个节点(或者如果它是一个决策节点,它将等待用户输入以设置下一个节点)
我看到很多具有复杂决策引擎的游戏,但我想知道它们是如何制作的?是否有使事情变得真正简单的特殊设计?有没有人做过类似的事情,可以给我提示如何解决这个问题?
更新1:
一个重要方面是设法以某种方式保持故事代码独立,以便可以从外部文件操纵它。我计划将其用作引擎,因此即使可能的选择也必须来自外部文件。该代码必须是完全抽象的。
另外,我对设计解决方案感兴趣,这是一种很好的解决方案,其他人是如何做到或做到的。
if (isTree)
或保留isTree
全局变量,因为故事可能有也可能没有这种选择。明白我的意思了吗?它更像是一个选择引擎,可以提供多个故事。
isTree=true
但是后来,他做了其他事情,例如与一个同学打架,而后者却在树还很年轻的时候砍掉了他的树。因为他的屁股被踢了。现在,我们有2个变量影响树isTree==true' and
didFightBrat == false` 的存在。明白我的意思了吗?而且链条可以永远持续下去,树的存在会受到未知数因素的影响。明白我的意思了吗?