如何在Game Engine设计中允许自定义规则?

时间:2016-04-16 03:46:47

标签: components game-engine rule-engine

所以我正在为塔防游戏构建2D游戏引擎。我在我的游戏中使用实体组件系统(ECS)设计,这允许更多的灵活性和可扩展性。但是,我对如何实现自定义用户定义规则感到困惑。例如,用户可能想要一个规则,该规则说明当两个特定实体发生碰撞时,会导致具有特定半径的爆炸。或者她可能想要一个规则,即当某个实体的健康状况达到某一点时,它的速度会增加一定量。或者让我们说当其他两个实体发生碰撞时,Level会自动结束并继续前进到下一个级别。

关键是我希望用户能够定义自定义规则和事件,我不太确定如何在我的设计中加入此功能。我的一个想法是创建一个规则对象,它由一系列谓词和一系列动作组成,但我不太确定这些规则对象应该存在的位置,应该检查/触发它们的位置,或者它们是不是甚至是一个好主意。

1 个答案:

答案 0 :(得分:0)

用户可以添加的规则列表需要是已定义的集合,因此每个规则的逻辑都将写入最相关的组件中。

您提到的碰撞规则将是物理组件的一部分,速度规则将是健康组件的一部分等。