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

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

圖2 基于Cocos-2d引擎的游戲架夠應用層次
本文研究了現有的Cocos-2d引擎架構,并在此基礎上封裝了API接口來增加擴平臺之間的通用性;同時,構架了基于客戶端/服務端的Cocos-2d底層網絡收發模塊,最后進行了驗證。
參考文獻
李華明 iOS 游戲編程之從零開始:Cocos2d-x 與 cocos2d 引擎游戲開發[M].北京市:清華大學出版社 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