王卿羽(深圳淘樂(lè)網(wǎng)絡(luò)科技有限公司,518000)
?
Cocos-2d引擎方式下2D對(duì)戰(zhàn)游戲的網(wǎng)絡(luò)設(shè)計(jì)與開發(fā)
王卿羽
(深圳淘樂(lè)網(wǎng)絡(luò)科技有限公司,518000)
摘要:Cocos-2d是一種跨平臺(tái)的游戲架構(gòu)引擎方式,對(duì)于底層的TCP/IP網(wǎng)絡(luò)協(xié)議有很好的支持,其本身的內(nèi)存管理機(jī)制及消息分發(fā)機(jī)制能夠?qū)崿F(xiàn)快速的高性能網(wǎng)絡(luò)游戲架構(gòu)。本文研究了現(xiàn)有的Cocos-2d引擎架構(gòu),并在此基礎(chǔ)上封裝了API接口來(lái)增加擴(kuò)平臺(tái)之間的通用性;同時(shí),構(gòu)架了基于客戶端/服務(wù)端的Cocos-2d底層網(wǎng)絡(luò)收發(fā)模塊,最后進(jìn)行了驗(yàn)證。
關(guān)鍵詞:Cocos-2d;游戲引擎;BSD-Socket
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展及國(guó)家對(duì)文化產(chǎn)業(yè)的持續(xù)投入,基于移動(dòng)端平臺(tái)的游戲開發(fā)越來(lái)越成為各公司的重點(diǎn)投入領(lǐng)域,大量的千萬(wàn)級(jí)網(wǎng)絡(luò)游戲刷新了人們的視覺(jué)和娛樂(lè)體驗(yàn)。在游戲開發(fā)設(shè)計(jì)領(lǐng)域,游戲引擎的設(shè)計(jì)在整個(gè)游戲開發(fā)中占據(jù)了重要的位置,其引擎的運(yùn)行效率直接影響著整個(gè)游戲的用戶體驗(yàn)。
Cocos-2d-X作為游戲的三大引擎技術(shù)之一,其基于開源代碼的擴(kuò)扎性及通用新為游戲開發(fā)提供了很好的示范作用;同時(shí),基于開源打開的CocoStudio編輯器及各類API模塊相應(yīng)被開發(fā),為游戲開發(fā)者提供了底層的各類模塊,極大的方便了開發(fā)的難度。
本文研究了現(xiàn)有的Cocos-2d引擎架構(gòu),并在此基礎(chǔ)上封裝了API接口來(lái)增加擴(kuò)平臺(tái)之間的通用性;同時(shí),構(gòu)架了基于客戶端/服務(wù)端的Cocos-2d底層網(wǎng)絡(luò)收發(fā)模塊,最后進(jìn)行了驗(yàn)證。
基于Cocos-2d引擎的游戲開發(fā)主要有如下幾個(gè)模塊組成:
⑴Graphisc:負(fù)責(zé)整個(gè)游戲跨平臺(tái)底層的繪畫及音頻適配功能,實(shí)現(xiàn)過(guò)程是在于編譯階段,本文Graphisc模塊在底層通過(guò)支持OpenGL,AudioCocosDenshion來(lái)實(shí)現(xiàn)多平臺(tái)的音頻兼容;物理層面,則選用具有較好的移植能力的Bix2D。
⑵Director:是整個(gè)游戲架構(gòu)的總指揮。
⑶Scene:游戲的場(chǎng)景有多個(gè)具體的布景組合而成,本文的Scene有四部分組成:UI布景層、地圖布景層、游戲布景層及對(duì)象布景層。
⑷Layer:具體的游戲布景層,通俗講就是各個(gè)關(guān)卡背景。
⑸Widget:在本文通過(guò)對(duì)Cocos-2d引擎進(jìn)行UI封裝,與其它模塊進(jìn)行接口匹配;其次,封裝后的模塊利用CocoStudio編輯器進(jìn)行編輯并生成xml文件,最終生成Widget引擎類,并在此基礎(chǔ)上擴(kuò)展出UIButtion、UIText、UIIamgeView等子類。
⑹Armatrue:游戲的動(dòng)畫幀類,利用Cocos-2d引擎進(jìn)行導(dǎo)入,構(gòu)建Armatrue類。
⑺Sprite:對(duì)戰(zhàn)游戲中主角及敵角類,在更為復(fù)雜的游戲中還包含機(jī)關(guān)類及控制類。

圖1 基于BSDSocket協(xié)議的數(shù)據(jù)傳輸流程
Director為真?zhèn)€游戲的管理節(jié)點(diǎn),其直接管理著游戲中所有的Scene類,Scene類又垂直管理若干Layer類,Layer類則管理若干Sprite類,而Sprite管理具體的圖片、特效及音頻等。所以基于Cocos-2d引擎的游戲架構(gòu)以一種數(shù)型分層架構(gòu)展開,進(jìn)行循環(huán)遍歷。Scene類、Layer類及Sprite類作為整個(gè)架構(gòu)中的中間層各自管理在自身的直屬子類,同時(shí)本有具有相應(yīng)的屬性,方便管理。
本文基于Cocos-2d引擎的游戲架構(gòu)在底層的網(wǎng)絡(luò)接口選用BSDSocket協(xié)議實(shí)現(xiàn),BSDSocket協(xié)議是基于UNIX系統(tǒng)的網(wǎng)絡(luò)基礎(chǔ)接口,能夠支持各種類型的網(wǎng)絡(luò),并同時(shí)可以實(shí)現(xiàn)部署在同一物理機(jī)上的兩個(gè)進(jìn)程之間的數(shù)據(jù)傳輸。
套接字是實(shí)現(xiàn)BSDSocket接口的一種技術(shù),在同一物理機(jī)或不同物理機(jī)上的兩個(gè)進(jìn)程使用同一端口的套接字是進(jìn)行通信鏈路連接,其網(wǎng)絡(luò)帶寬及數(shù)據(jù)并發(fā)量并沒(méi)進(jìn)行限制。
基于BSDSocket協(xié)議的數(shù)據(jù)傳輸流程如下圖所示:
基于Cocos-2d引擎的游戲架夠應(yīng)用分為如下幾個(gè)字系統(tǒng):
⑴游戲底層數(shù)據(jù)傳輸層:負(fù)責(zé)整個(gè)網(wǎng)絡(luò)協(xié)議模塊的封裝,實(shí)現(xiàn)各模塊之間的消息分發(fā)及數(shù)據(jù)傳輸,是整個(gè)系統(tǒng)的核心層。
⑵協(xié)議管理層:客戶端以服務(wù)端的消息交互并不是直接進(jìn)行,而是先發(fā)送給協(xié)議管理層,協(xié)議管理層對(duì)消息進(jìn)行分裝后發(fā)送給服務(wù)器。
⑶邏輯控制層:負(fù)責(zé)整個(gè)游戲的各類的邏輯控制,包含NPC AI等邏輯計(jì)算功能。
⑷游戲敵對(duì)雙方的技術(shù)屬性層:提供用戶帳號(hào)的查看、技能升級(jí)及各類個(gè)性化更新需求,通過(guò)客戶端發(fā)起并通知服務(wù)器端進(jìn)行更改;更新完畢后由服務(wù)器端發(fā)送成功或失敗消息。
⑸裝備子層:支持裝備的更新操作。
⑹狀態(tài)子層:游戲?qū)?zhàn)中各類各類任務(wù)的執(zhí)行狀態(tài)。
⑺任務(wù)子層:管理對(duì)戰(zhàn)游戲中總?cè)蝿?wù)及各類子任務(wù)的執(zhí)行情況。
其余還包含地圖子層、商品子層等。
基于Cocos-2d引擎的游戲架夠應(yīng)用層次如下圖所示:

圖2 基于Cocos-2d引擎的游戲架夠應(yīng)用層次
本文研究了現(xiàn)有的Cocos-2d引擎架構(gòu),并在此基礎(chǔ)上封裝了API接口來(lái)增加擴(kuò)平臺(tái)之間的通用性;同時(shí),構(gòu)架了基于客戶端/服務(wù)端的Cocos-2d底層網(wǎng)絡(luò)收發(fā)模塊,最后進(jìn)行了驗(yàn)證。
參考文獻(xiàn)
李華明 iOS 游戲編程之從零開始:Cocos2d-x 與 cocos2d 引擎游戲開發(fā)[M].北京市:清華大學(xué)出版社 2013 年 2 月 1 日.
Network design and development of 2D to war game under the mode of Cocos-2d engine
Wang Qingyu
(Shenzhen Amoy Music Network Technology Co.,Ltd.518000)
Abstract:Cocos-2d is a cross platform game engine architecture style,for the underlying TCP/IP network protocol has very good support and its own memory management mechanism and message distribution mechanism can realize fast high performance network game architectures.In this paper,we study the existing Cocos-2d engine architecture and package based on the API interface to increase the commonality between the expanded platform.At the same time,the framework based on client / server Cocos-2d underlying network transceiver module.Finally,the validation.
Keywords:Cocos-2d;game engine;BSD-Socket