【问题标题】:How to allow custom rules in Game Engine design?如何在游戏引擎设计中允许自定义规则?
【发布时间】:2016-08-08 04:16:31
【问题描述】:

所以我正在为塔防游戏构建一个 2D 游戏引擎。我在我的游戏中使用了实体组件系统 (ECS) 设计,它提供了更大的灵活性和可扩展性。但是,我对如何实施自定义用户定义规则感到困惑。例如,用户可能想要一条规则,说明当两个特定实体发生碰撞时,会导致一定半径的爆炸。或者她可能想要一条规则,当某个实体的健康达到某个点时,它的速度会增加一定量。或者假设当两个其他实体发生碰撞时,关卡会自动结束并进入下一个关卡。

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

【问题讨论】:

    标签: components game-engine rule-engine


    【解决方案1】:

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

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

    【讨论】:

    • 所以ECS设计背后的理念是组件或实体中不应该有任何逻辑。这个想法是逻辑应该在不同的系统中。但即便如此,我将如何允许用户创建自定义规则?看来您建议我事先执行规则..?
    • 在我使用过的游戏引擎中,逻辑通常位于组件或实体内部。不过,某些组件可能会变得非常具体。即使您的自定义规则也不能是无限的,最终他们需要修改有限数量的属性。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 2010-09-10
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2023-02-01
    • 1970-01-01
    相关资源
    最近更新 更多