能量開發(fā)示例
最近開發(fā)遇到一個新需求:
英雄的能量運算獨立開發(fā),A類型的能量需要通過固定速度進(jìn)行運算丰榴,B類型的能量需要根據(jù)游戲環(huán)境變量實時調(diào)整能量恢復(fù)速度。
變更前開發(fā)說明
之前開發(fā)時,需求是能量豆通過固定的速度進(jìn)行運算,所以之前的結(jié)構(gòu)是這樣的:
Component:
|-Power
System:
|-PowerSystem
說明:
- Power是能量值組件准验,存儲能量值、能量最大值廷没、能量恢復(fù)速度糊饱。
- PowerSystem是能量計算系統(tǒng),依賴Power組件進(jìn)行計算颠黎,通過獲取能量恢復(fù)速度另锋,每幀對當(dāng)前能量值進(jìn)行更新運算。
變更后開發(fā)說明
但是當(dāng)需求變更后狭归,原有結(jié)構(gòu)便不再適合砰蠢,就有了新的結(jié)構(gòu):
Component:
|-Power
|-PowerSpeed
System:
|-PowerSpeedSystem
|-PowerSystem
說明:
- Power是能量值組件,存儲能量值唉铜、能量最大值台舱。
- PowerSpeed是能量恢復(fù)速度組件,因需求原因而單獨分離出潭流。
- PowerSpeedSystem是能量恢復(fù)速度計算系統(tǒng)竞惋,依賴PowerSpeed組件進(jìn)行計算。依據(jù)需求灰嫉,可將該系統(tǒng)依賴組件指定為特定類型的組件組合拆宛,再對其進(jìn)行計算。
- PowerSystem是能量計算系統(tǒng)讼撒,依賴Power與PowerSpeed組件進(jìn)行計算浑厚。
備注
實際開發(fā)時遇到的小例子,雖然很小根盒,不過對于ECS作為開發(fā)模式來說钳幅,還是有一定說服力的。
我認(rèn)為炎滞,在這種思想下進(jìn)行開發(fā)時敢艰,需求的變更便是從數(shù)據(jù)層面進(jìn)行變更,然后根據(jù)變更后的數(shù)據(jù)內(nèi)容進(jìn)行結(jié)構(gòu)調(diào)整册赛。所以需求的變更本質(zhì)是Component钠导、System的變更,如果架構(gòu)中有Archetype的概念森瘪,那么同時也包括了Archetype的變更(例子中PowerSpeedSystem與PowerSystem所關(guān)注的Archetype較原有設(shè)計是發(fā)生了變更的)牡属。