基于ECS的Cocos2d-X引擎優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2021-12-09 01:00
隨著智能手機(jī)的高速發(fā)展,手機(jī)游戲逐漸呈現(xiàn)精品化趨勢。為了支持更多的玩法和更流暢的游戲體驗(yàn),游戲引擎在進(jìn)行迭代時(shí)不僅需要保持良好的代碼可擴(kuò)展性,還需提供更好的游戲性能。Cocos2d-X作為國內(nèi)游戲公司常用的主流手機(jī)游戲引擎,在框架設(shè)計(jì)層面仍存在一定缺陷,難以滿足手機(jī)游戲的上述要求。本文工作結(jié)合ECS(Entity-Component-System)軟件架構(gòu)模式在游戲開發(fā)領(lǐng)域的優(yōu)勢,提出了一個(gè)能夠改進(jìn)Cocos2d-X的優(yōu)化方案并予以實(shí)現(xiàn):(1)在使用Cocos2d-X開發(fā)的游戲中,數(shù)據(jù)與邏輯之間的相互依賴使得開發(fā)者經(jīng)常需要對代碼做出不小的改動(dòng)才可滿足迭代過程中頻繁變更的游戲需求。對此,分別將游戲世界中的對象、數(shù)據(jù)和行為抽象為ECS中的實(shí)體、組件以及系統(tǒng),使用位數(shù)組和順序存儲(chǔ)結(jié)構(gòu)降低游戲數(shù)據(jù)與邏輯間的耦合,使開發(fā)者能夠以組合的方式構(gòu)建游戲?qū)ο?從而方便快速地對游戲功能進(jìn)行擴(kuò)展或修改。(2)當(dāng)開發(fā)交互實(shí)時(shí)性要求較高的游戲時(shí),Cocos2d-X在性能方面的限制容易導(dǎo)致游戲出現(xiàn)卡頓等性能問題。對此,建立內(nèi)存管理機(jī)制提高游戲數(shù)據(jù)的內(nèi)存申請與釋放速度,并結(jié)合模板元編程技術(shù)減少游戲運(yùn)行過程中的性能開...
【文章來源】:東南大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:70 頁
【學(xué)位級別】:碩士
【部分圖文】:
Cocos2d-X引擎架構(gòu)圖
Cocos2d-X引擎將游戲的各個(gè)部分抽象為導(dǎo)演、場景、層、精靈等概念,并以Node節(jié)點(diǎn)樹的形式組織它們[28],如圖2-2所示。Cocos2d-X把一個(gè)游戲劃分為不同的場景(CCScene),每個(gè)場景包含不同的層(CCLayer),每個(gè)層可以擁有任意可見的精靈(CCSprite)。單例導(dǎo)演類(CCDirector)管理這些場景,通過切換不同的場景來完成整個(gè)游戲流程。Cocos2d-X中的基本類包括:
在游戲開發(fā)者基于以上場景-層-精靈的樹形結(jié)構(gòu)構(gòu)建完游戲世界中的所有對象后,Cocos2d-X引擎便開始在游戲的每一幀內(nèi),對內(nèi)部的各個(gè)子系統(tǒng)(渲染、動(dòng)畫、物理模擬等)以及游戲?qū)ο蟮膬?nèi)部狀態(tài)進(jìn)行周期性更新(即以一個(gè)周期性執(zhí)行的死循環(huán)維持游戲世界的運(yùn)行),從而實(shí)現(xiàn)游戲世界中的各種功能(比如角色的跑動(dòng)、施放技能時(shí)產(chǎn)生的火光特效等)。整個(gè)游戲循環(huán)流程如圖2-3所示:(1)在游戲每一幀的開始,Cocos2d-X首先監(jiān)聽是否有屏幕觸摸、鼠標(biāo)以及重力感應(yīng)等用戶輸入事件發(fā)生,并決定是否處理和分發(fā)這些事件。
【參考文獻(xiàn)】:
期刊論文
[1]云游戲中基于幀率控制的FEC補(bǔ)償策略[J]. 沈?qū)?白光偉,沈航. 小型微型計(jì)算機(jī)系統(tǒng). 2018(05)
[2]基于Cocos2d-JS游戲引擎的使用研究[J]. 謝景明. 信息與電腦(理論版). 2018(08)
[3]游戲引擎研究與分析[J]. 王龍,李韜偉,楊振發(fā). 軟件導(dǎo)刊. 2018(02)
[4]信息中心網(wǎng)絡(luò)中基于節(jié)點(diǎn)緩存命中貢獻(xiàn)率的緩存替換方案[J]. 徐昌彪,王華,王珩. 電訊技術(shù). 2017(03)
[5]基于突發(fā)集中性訪問模式的緩存替換算法[J]. 李聰,溫東新. 計(jì)算機(jī)工程. 2017(01)
[6]基于Linux多線程技術(shù)的網(wǎng)絡(luò)并發(fā)編程及應(yīng)用研究[J]. 申時(shí)全. 現(xiàn)代計(jì)算機(jī)(專業(yè)版). 2016(31)
[7]基于Unity3D游戲客戶端開發(fā)框架的設(shè)計(jì)與應(yīng)用[J]. 桑琪,葉德建. 微型電腦應(yīng)用. 2016(06)
[8]組件式游戲開發(fā)框架的研究與實(shí)現(xiàn)[J]. 余小華,鐘紹勇. 計(jì)算機(jī)工程與設(shè)計(jì). 2015(07)
[9]三維游戲引擎的研究與設(shè)計(jì)[J]. 高興,鄭智,全宇. 計(jì)算機(jī)系統(tǒng)應(yīng)用. 2013(08)
[10]JSON數(shù)據(jù)傳輸效率研究[J]. 高靜,段會(huì)川. 計(jì)算機(jī)工程與設(shè)計(jì). 2011(07)
碩士論文
[1]基于Cocos2D-x的卡牌類游戲框架的設(shè)計(jì)與實(shí)現(xiàn)[D]. 張巖林.吉林大學(xué) 2017
[2]基于Cocos2d-x的虛擬廚房設(shè)計(jì)與實(shí)現(xiàn)[D]. 歐陽林霞.吉林大學(xué) 2016
[3]基于Cocos2d-x游戲引擎的塔防類手機(jī)游戲框架設(shè)計(jì)與實(shí)現(xiàn)[D]. 王異帆.華中師范大學(xué) 2015
[4]基于Cocos2d-x引擎的游戲架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[D]. 李勇.北京郵電大學(xué) 2015
[5]Cocos2d-X引擎中MVC框架的設(shè)計(jì)與實(shí)現(xiàn)[D]. 周飛龍.華中科技大學(xué) 2013
本文編號:3529596
【文章來源】:東南大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:70 頁
【學(xué)位級別】:碩士
【部分圖文】:
Cocos2d-X引擎架構(gòu)圖
Cocos2d-X引擎將游戲的各個(gè)部分抽象為導(dǎo)演、場景、層、精靈等概念,并以Node節(jié)點(diǎn)樹的形式組織它們[28],如圖2-2所示。Cocos2d-X把一個(gè)游戲劃分為不同的場景(CCScene),每個(gè)場景包含不同的層(CCLayer),每個(gè)層可以擁有任意可見的精靈(CCSprite)。單例導(dǎo)演類(CCDirector)管理這些場景,通過切換不同的場景來完成整個(gè)游戲流程。Cocos2d-X中的基本類包括:
在游戲開發(fā)者基于以上場景-層-精靈的樹形結(jié)構(gòu)構(gòu)建完游戲世界中的所有對象后,Cocos2d-X引擎便開始在游戲的每一幀內(nèi),對內(nèi)部的各個(gè)子系統(tǒng)(渲染、動(dòng)畫、物理模擬等)以及游戲?qū)ο蟮膬?nèi)部狀態(tài)進(jìn)行周期性更新(即以一個(gè)周期性執(zhí)行的死循環(huán)維持游戲世界的運(yùn)行),從而實(shí)現(xiàn)游戲世界中的各種功能(比如角色的跑動(dòng)、施放技能時(shí)產(chǎn)生的火光特效等)。整個(gè)游戲循環(huán)流程如圖2-3所示:(1)在游戲每一幀的開始,Cocos2d-X首先監(jiān)聽是否有屏幕觸摸、鼠標(biāo)以及重力感應(yīng)等用戶輸入事件發(fā)生,并決定是否處理和分發(fā)這些事件。
【參考文獻(xiàn)】:
期刊論文
[1]云游戲中基于幀率控制的FEC補(bǔ)償策略[J]. 沈?qū)?白光偉,沈航. 小型微型計(jì)算機(jī)系統(tǒng). 2018(05)
[2]基于Cocos2d-JS游戲引擎的使用研究[J]. 謝景明. 信息與電腦(理論版). 2018(08)
[3]游戲引擎研究與分析[J]. 王龍,李韜偉,楊振發(fā). 軟件導(dǎo)刊. 2018(02)
[4]信息中心網(wǎng)絡(luò)中基于節(jié)點(diǎn)緩存命中貢獻(xiàn)率的緩存替換方案[J]. 徐昌彪,王華,王珩. 電訊技術(shù). 2017(03)
[5]基于突發(fā)集中性訪問模式的緩存替換算法[J]. 李聰,溫東新. 計(jì)算機(jī)工程. 2017(01)
[6]基于Linux多線程技術(shù)的網(wǎng)絡(luò)并發(fā)編程及應(yīng)用研究[J]. 申時(shí)全. 現(xiàn)代計(jì)算機(jī)(專業(yè)版). 2016(31)
[7]基于Unity3D游戲客戶端開發(fā)框架的設(shè)計(jì)與應(yīng)用[J]. 桑琪,葉德建. 微型電腦應(yīng)用. 2016(06)
[8]組件式游戲開發(fā)框架的研究與實(shí)現(xiàn)[J]. 余小華,鐘紹勇. 計(jì)算機(jī)工程與設(shè)計(jì). 2015(07)
[9]三維游戲引擎的研究與設(shè)計(jì)[J]. 高興,鄭智,全宇. 計(jì)算機(jī)系統(tǒng)應(yīng)用. 2013(08)
[10]JSON數(shù)據(jù)傳輸效率研究[J]. 高靜,段會(huì)川. 計(jì)算機(jī)工程與設(shè)計(jì). 2011(07)
碩士論文
[1]基于Cocos2D-x的卡牌類游戲框架的設(shè)計(jì)與實(shí)現(xiàn)[D]. 張巖林.吉林大學(xué) 2017
[2]基于Cocos2d-x的虛擬廚房設(shè)計(jì)與實(shí)現(xiàn)[D]. 歐陽林霞.吉林大學(xué) 2016
[3]基于Cocos2d-x游戲引擎的塔防類手機(jī)游戲框架設(shè)計(jì)與實(shí)現(xiàn)[D]. 王異帆.華中師范大學(xué) 2015
[4]基于Cocos2d-x引擎的游戲架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[D]. 李勇.北京郵電大學(xué) 2015
[5]Cocos2d-X引擎中MVC框架的設(shè)計(jì)與實(shí)現(xiàn)[D]. 周飛龍.華中科技大學(xué) 2013
本文編號:3529596
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3529596.html
最近更新
教材專著