使用ECS開發(fā)游戲的經(jīng)驗(yàn)總結(jié)

本文是我使用自己開發(fā)的ECS框架進(jìn)行開發(fā)的一些經(jīng)驗(yàn)總結(jié)凸舵。由于ECS開發(fā)本身和傳統(tǒng)的面向?qū)ο箝_發(fā)有所不同,因而會有很多之前不常見的問題抵皱,故而記錄余耽。本文暫無完結(jié)日期缚柏,依據(jù)項(xiàng)目進(jìn)度有一點(diǎn)寫一點(diǎn)吧。

使用ECS開發(fā)游戲碟贾,尤其是自己實(shí)現(xiàn)的ECS架構(gòu)币喧,總是有很多內(nèi)容值得進(jìn)行總結(jié),無論用途僅僅是打發(fā)時(shí)間袱耽,亦或是為了后期對架構(gòu)的改進(jìn)杀餐,甚或是為了之后開發(fā)更順手。


2020-4-23記錄:

實(shí)體間的生命周期關(guān)聯(lián)問題2

問題:面向?qū)ο笙驴梢酝ㄟ^一個Manager管理多個實(shí)例以方便對其統(tǒng)一管理與處理朱巨。但是在ECS中史翘,這類實(shí)現(xiàn)很可能會因關(guān)聯(lián)實(shí)體的銷毀而產(chǎn)生報(bào)錯

:角色行為作為一個實(shí)體,放置于行為管理類中冀续。運(yùn)行中的行為會時(shí)刻刷新對應(yīng)角色相關(guān)數(shù)據(jù)琼讽,但當(dāng)角色因死亡而銷毀時(shí),行為會因獲取不到對應(yīng)角色而產(chǎn)生報(bào)錯洪唐。

思考:此問題和 2020-4-22 鎖記錄生命周期問題本質(zhì)相同钻蹬。此處實(shí)例考慮到行為是依附于角色而存在,所以可以將行為抽象為組件添加在角色上凭需,這樣當(dāng)角色死亡時(shí)问欠,行為組件便也失效肝匆,不會再出現(xiàn)這種報(bào)錯。但是這種實(shí)現(xiàn)方式顺献,因銷毀而關(guān)聯(lián)的行為又可能產(chǎn)生不確定的新問題旗国。如若銷毀行為時(shí)不執(zhí)行行為的結(jié)束動作,則可能存在狀態(tài)殘留滚澜;如若執(zhí)行結(jié)束動作粗仓,又會涉及到內(nèi)部細(xì)節(jié)的調(diào)整。所以此類問題在設(shè)計(jì)時(shí)還是應(yīng)當(dāng)考慮清楚一些设捐。我個人還是希望能報(bào)保留結(jié)束動作,使邏輯行為完整塘淑,而在動作內(nèi)部有足夠的驗(yàn)證以規(guī)避特殊狀況下的異常狀態(tài)萝招。


2020-4-22記錄:

實(shí)體間的生命周期關(guān)聯(lián)問題

問題:實(shí)體作為多個組件的集合,本身并無特別復(fù)雜的邏輯存捺。但是當(dāng)實(shí)體之間的生命周期存在關(guān)聯(lián)槐沼,則是一個比較麻煩的問題。

:角色作為一個實(shí)體捌治,技能作為一個實(shí)體岗钩。則當(dāng)角色實(shí)體被刪除時(shí),技能便不再應(yīng)該繼續(xù)執(zhí)行肖油,因而此時(shí)兩者碰到了 生命周期關(guān)聯(lián) 問題兼吓。如果技能此時(shí)繼續(xù)強(qiáng)行執(zhí)行,一者不大符合我們對技能本身的認(rèn)知森枪,二則當(dāng)技能需要使用角色信息時(shí)會因取不到角色信息而出現(xiàn)BUG视搏。

思考:現(xiàn)行ECS架構(gòu)當(dāng)中并未對實(shí)體進(jìn)行生命周期關(guān)聯(lián)。但是就關(guān)聯(lián)思想本身县袱,似乎和ECS的基本思路并不在一處浑娜。我的現(xiàn)行設(shè)計(jì)是通過一個叫做SkillOwner的組件將角色與技能進(jìn)行關(guān)聯(lián),當(dāng)出現(xiàn)這個問題時(shí)式散,我在角色死亡時(shí)通過獲取SkillOwner組件獲取并刪除了角色綁定的技能筋遭,暫時(shí)圓滿解決了問題。這個真的就是最優(yōu)解嗎暴拄?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漓滔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子揍移,更是在濱河造成了極大的恐慌次和,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件那伐,死亡現(xiàn)場離奇詭異踏施,居然都是意外死亡石蔗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門畅形,熙熙樓的掌柜王于貴愁眉苦臉地迎上來养距,“玉大人,你說我怎么就攤上這事日熬」餮幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵竖席,是天一觀的道長耘纱。 經(jīng)常有香客問我,道長毕荐,這世上最難降的妖魔是什么束析? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮憎亚,結(jié)果婚禮上员寇,老公的妹妹穿的比我還像新娘。我一直安慰自己第美,他們只是感情好蝶锋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著什往,像睡著了一般扳缕。 火紅的嫁衣襯著肌膚如雪单绑。 梳的紋絲不亂的頭發(fā)上拆又,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音俱恶,去河邊找鬼兔港。 笑死庸毫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衫樊。 我是一名探鬼主播飒赃,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼科侈!你這毒婦竟也來了载佳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤臀栈,失蹤者是張志新(化名)和其女友劉穎蔫慧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體权薯,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姑躲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年睡扬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黍析。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡卖怜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阐枣,到底是詐尸還是另有隱情马靠,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布蔼两,位于F島的核電站甩鳄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏额划。R本人自食惡果不足惜娩贷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锁孟。 院中可真熱鬧,春花似錦茁瘦、人聲如沸品抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圆恤。三九已至,卻和暖如春腔稀,著一層夾襖步出監(jiān)牢的瞬間盆昙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工焊虏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淡喜,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓诵闭,卻偏偏與公主長得像炼团,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子疏尿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容