美文网首页
ECS开发模式示例

ECS开发模式示例

作者: 卅云川 | 来源:发表于2020-11-03 16:34 被阅读0次

    能量开发示例

    最近开发遇到一个新需求:

    英雄的能量运算独立开发,A类型的能量需要通过固定速度进行运算,B类型的能量需要根据游戏环境变量实时调整能量恢复速度。

    变更前开发说明

    之前开发时,需求是能量豆通过固定的速度进行运算,所以之前的结构是这样的:

    Component:
        |-Power
    System:
        |-PowerSystem
    

    说明:

    • Power是能量值组件,存储能量值、能量最大值、能量恢复速度。
    • PowerSystem是能量计算系统,依赖Power组件进行计算,通过获取能量恢复速度,每帧对当前能量值进行更新运算。

    变更后开发说明

    但是当需求变更后,原有结构便不再适合,就有了新的结构:

    Component:
        |-Power
        |-PowerSpeed
    System:
        |-PowerSpeedSystem
        |-PowerSystem
    

    说明:

    • Power是能量值组件,存储能量值、能量最大值
    • PowerSpeed是能量恢复速度组件,因需求原因而单独分离出。
    • PowerSpeedSystem是能量恢复速度计算系统,依赖PowerSpeed组件进行计算。依据需求,可将该系统依赖组件指定为特定类型的组件组合,再对其进行计算。
    • PowerSystem是能量计算系统,依赖Power与PowerSpeed组件进行计算。

    备注

    实际开发时遇到的小例子,虽然很小,不过对于ECS作为开发模式来说,还是有一定说服力的。

    我认为,在这种思想下进行开发时,需求的变更便是从数据层面进行变更,然后根据变更后的数据内容进行结构调整。所以需求的变更本质是Component、System的变更,如果架构中有Archetype的概念,那么同时也包括了Archetype的变更(例子中PowerSpeedSystem与PowerSystem所关注的Archetype较原有设计是发生了变更的)。

    相关文章

      网友评论

          本文标题:ECS开发模式示例

          本文链接:https://www.haomeiwen.com/subject/kbfivktx.html