如何在游戏引擎设计中允许自定义规则



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

重点是,我希望用户能够定义自定义规则和事件,但我不太确定如何将此功能融入我的设计中。我的一个想法是创建一个规则对象,它由谓词列表和操作列表组成,但我不太确定这些规则对象应该存在于哪里,应该在哪里检查/触发它们,或者它们是否是一个好主意。

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

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

最新更新