美文网首页
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