日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ECS架构

發(fā)布時(shí)間:2025/1/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ECS架构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ECS架構(gòu)

如何評(píng)價(jià)《守望先鋒》架構(gòu)設(shè)計(jì)?https://www.zhihu.com/question/61169850
淺談《守望先鋒》中的 ECS 構(gòu)架https://blog.codingnow.com/2017/06/overwatch_ecs.html#more
  • 熱更新不經(jīng)過應(yīng)用商店,在應(yīng)用內(nèi)部實(shí)行的即時(shí)更新。尤其常見與游戲軟件,因?yàn)樗麄傿UG的修復(fù)和新(小)功能的添加是很高頻率的。2017年,蘋果由于熱更新下架了70多款軟件,
  • SDK:Software Development Kit,軟件開發(fā)者工具包,SDK正是提供了一整套開發(fā)Windows應(yīng)用程序所需的相關(guān)文件、范例和工具的“工具包”。
  • gameplay:游戲可玩性
  • 疑問,所以現(xiàn)在蘋果支持熱更新嘛?

1:優(yōu)點(diǎn)

  • 模式簡(jiǎn)單。如果還是覺得復(fù)雜,推薦看看 GoF 的《設(shè)計(jì)模式》。
  • 概念統(tǒng)一。不再需要龐大臃腫的 OOP 繼承體系和大量中間抽象,有助于迅速把握系統(tǒng)全貌。同時(shí),統(tǒng)一的概念也有利于實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)(后面會(huì)提到)。
  • **結(jié)構(gòu)清晰。**Component 即數(shù)據(jù),System 即行為。Component 扁平的表達(dá)有助于實(shí)現(xiàn) Component 間的正交。而封裝數(shù)據(jù)和行為的做法,不仔細(xì)設(shè)計(jì)就會(huì)導(dǎo)致 Component 越來越臃腫。
  • **容易組合,高度復(fù)用。**Component 具有高度可插拔、可復(fù)用的特性。而 System 主要關(guān)心的是 Component 而不是 Entity,通過 Component 來組裝新的 Entity,對(duì) System 來說是無痛的。
  • **擴(kuò)展性強(qiáng)。**增加 Component 和 System,不需要對(duì)原有代碼框架進(jìn)行改動(dòng)。
  • **利于實(shí)現(xiàn)面向數(shù)據(jù)編程(DOP)。**對(duì)于游戲開發(fā)領(lǐng)域來說,面向數(shù)據(jù)編程是個(gè)很重要的思路。天然親和數(shù)據(jù)驅(qū)動(dòng)的開發(fā)模式,有助于實(shí)現(xiàn)以編輯器為核心的工作流程。
  • **性能更好優(yōu)化。**接上條,相比 OOP 來說,DOP 有更大的性能優(yōu)化空間。(詳見后面章節(jié))。同時(shí)講數(shù)據(jù)更好的組織,能夠提高 CPU cache的命中率,并行化

2:基本原理

在 ECS 框架中,把每個(gè)可能單獨(dú)使用的對(duì)象屬性歸納為一個(gè)個(gè) Component ,比如對(duì)象的名字就是一個(gè) Component ,對(duì)象的位置狀態(tài)是另一個(gè) Component 。每個(gè) Entity 是由多個(gè) Component 組合而成,共享一個(gè)生命期;而 Component 之間可以組合在一起作為 System 篩選的標(biāo)準(zhǔn)。我們?cè)陂_發(fā)的時(shí)候,可以定義一個(gè) System 關(guān)心某一個(gè)固定 Component 的組合;那么框架就會(huì)把游戲世界中滿足有這個(gè)組合的 Entity 都篩選出來供這個(gè) System 遍歷,如果一個(gè) Entity 只具備這組 Component 中的一部分,就不會(huì)進(jìn)入這個(gè)篩選集合,也就不被這個(gè) System 所關(guān)心了。

總結(jié)

以上是生活随笔為你收集整理的ECS架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。