前言
以下是個人經(jīng)驗栓辜,僅供參考箱熬。
其次:框架不是人事先想出來的,是代碼經(jīng)過一次次迭代约谈、重構(gòu)碗啄、解耦的出來的通用解決方案
當前日期:2020年11月14日
2020年9月13號正式下載游戲至今2020年11月14日质和,已經(jīng)過去兩個月了。
已經(jīng)換了兩次代碼了稚字,等級終于到了7級饲宿。
如果是新手玩家建議先自己體驗一邊我的流程。
盡量不要抄別人代碼胆描,抄代碼玩這游戲我覺得就失去游戲的樂趣了瘫想。
但是輪子不一樣,輪子是經(jīng)過多人測試的代碼昌讲,建議用国夜。
其次,我最多公布一些輪子短绸,并不會公開游戲內(nèi)完整代碼车吹!
最后,只有你玩的久了醋闭,你才能考慮到之后的事情窄驹。
只有你熟悉了API,你才能抽象解耦代碼目尖。
第一次代碼
剛開始玩馒吴,相當于熟悉了代碼的最基本的接口。
- 狀態(tài)機
- 角色系統(tǒng)
- 基礎(chǔ)行動邏輯(建筑|creep)
從官方教程到單房間的瑟曲。
從最簡單的狀態(tài)機饮戳,一個爬一個狀態(tài)機開始,
勉勉強強的到了6級洞拨,找了群里大佬要了新手禮包扯罐。
直到要擴展第二間房間,突然發(fā)現(xiàn)一個很致命的問題烦衣。
那就是歹河,無法擴展第二間房間,本質(zhì)沒有對房間進行解耦花吟。
第二次代碼
第二次代碼做了
- 外礦
- 將房間作為管理基本模塊
- 棧任務(wù)狀態(tài)機模式
- 初級戰(zhàn)斗邏輯
- 初級全局邏輯
這次代碼將房間作為模塊剝離了出來秸歧,每個房間獨立管理。
但是對于游戲內(nèi)的資源的API不熟悉導(dǎo)致我的代碼問題很多衅澈。
然后加了外礦代碼键菱,讓我在前期快速發(fā)展,建議新手前期也寫一點外礦代碼今布。
最重要的問題是cpu硬占比太低了经备,之占了50%左右拭抬。
主要是尋找任務(wù)上導(dǎo)致的,后面我會專門將如何找到性能異常點侵蒙。
原因是我做任務(wù)系統(tǒng)的時候是自上而下的造虎,每個爬都要計算一邊任務(wù)信息。
最后導(dǎo)致cpu占用率過高纷闺。
定義:硬消耗算凿,爬執(zhí)行一個動作固定消耗0.2 cpu的動作叫做硬消耗
當前為什么要重構(gòu)
- 要用LAB
- 要擴展更多房間
- 需要更靈活的結(jié)構(gòu)來擴展代碼
- 需要更穩(wěn)定,更節(jié)省cpu的任務(wù)模式
- 需要跨shader