Quest编辑器在java中为大型游戏

时间:2013-06-28 17:26:06

标签: java triggers prolog game-engine

这是我遇到的一个非常具体的问题:

我正在研究一个基于文本的RPG,其主要工作是实现一个编辑器,它可以添加NPC,项目并将它们放在地图上(...),而不需要任何编程知识。

所有这些事情都可以通过执行一些SQL查询来完成,整个过程已经有效了。现在我正在进行任务编辑。我的基本概念是,每次玩家输入命令时,都会查询特定字符串的数据库条目,该条目链接到一组具有唯一ID的条件和操作。这些在java代码中被查询,其中特定条件(例如,玩家货币等于100)具有返回结果的代码的一部分。这意味着,每次输入命令时都必须传递数百个(或更多)IF - 与根据命令的操作相同。我甚至不确定这是否正确(如果有人对此提出建议,请随时发布)。

现在的观点是,任务基本上由任务阶段组成,其中还包括启用条件和启用时执行的操作。这意味着,对于每个输入的命令,所有这些查询都必须进行。我想过使用某种触发器,但是我不知道如何实现它,因为我真的不想编辑这个编辑器中的java代码。我也考虑使用prolog,但在这种情况下,我必须在java代码中添加触发器。

我知道在这样的论坛中这有点难以处理,但如果有人有建议,我会很高兴。

修改

正如评论中所建议的那样,我想缩短整个事情:如果任何命令(houndres或千人)可以触发一个特定的任务/任务阶段(成千上万)并且这些触发器应该设置为编辑,有什么方法可以实现呢?

1 个答案:

答案 0 :(得分:1)

当一组事实与特定条件匹配时,推理大量事实并触发行动是drools的良好匹配。

你可以代表玩家作为事实做出的每一个行动/决定,你可以插入到drools知识会话中。

在该会话中,您可以将所有“触发器”存储为drools规则,当内存中的事实集合与条件匹配时,将触发该规则。

drools支持动态添加/删除/编辑规则,并且明确地旨在允许非开发人员使用更简单的规则语言编写逻辑。

开头的drools的特定部分是核心 - drools expert