聊聊游戲開發(fā)中的邏輯層框架模塊

不管是端游還是手游,在游戲引擎提供的基本支持之上,一個項目,通常還是需要自己的邏輯層框架。今天,我們就聊一聊一個游戲項目基本的邏輯層框架組成部。這里以Unity3D引擎為例,但不限于Unity3D引擎。

資源管理

一個項目開始,最好就規(guī)劃好資源目錄。隨著項目的開發(fā),資源會越來越多,越往后,越難整理,而且需要耗費大量時間和精力,所以建議隨著項目的開發(fā),就不斷地做好資源規(guī)劃和整理的工作。

編輯器階段

  1. 資源打包模塊
    對于Unity3D來說,主要是打包 AssetBundle

  2. 配置表導(dǎo)出模塊
    很多游戲的大量配置,使用excel的形式,所以必然需要一個工具能夠?qū)xcel表結(jié)構(gòu),轉(zhuǎn)為代碼,并且把表數(shù)據(jù),導(dǎo)出到游戲運行時能夠解析的格式,例如二進(jìn)制。還可以自動生成運行時加載解析代碼。

  3. 協(xié)議導(dǎo)出模塊
    很多游戲使用了google的 FlatBuffers 或者 Protocol Buffers,這里需要一個工具自動化地將協(xié)議文件導(dǎo)出成客戶端和服務(wù)器使用的代碼文件。

運行時階段

  1. 更新模塊
    這個模塊主要是根據(jù)項目自定義的版本信息,從網(wǎng)絡(luò)上自動下載需要更新的資源文件,以及代碼文件,這里通常使用lua,然后解壓到資源目錄。這里面涉及到兩個重要的東西,一個是版本和資源文件的定義,一個是HTTP請求模塊。對于Unity3D,通常使用 UnityWebRequest

  2. 網(wǎng)絡(luò)通信模塊
    TCP 或者 UDP,用于客戶端和服務(wù)器的邏輯通信。收發(fā)包數(shù)據(jù),根據(jù)協(xié)議號處理協(xié)議,具體處理函數(shù)為業(yè)務(wù)邏輯。

  3. UI管理器
    如果是MVC結(jié)構(gòu),定義好UI面板的基類,各UI類繼承基類。UI分層,普通UI面板層,彈出式面板層,Loading層,特效層,等等,具體根據(jù)項目需求靈活定義。

  4. 事件系統(tǒng)
    用于整個工程的業(yè)務(wù)邏輯之間通信。不過事件這種東西,有一個不好處就是有時候調(diào)試起來不是很直接,有時候難以確定是從哪里發(fā)來的事件,有弊有利。

  5. 代碼熱更新模塊
    現(xiàn)在比較常用的解決方案是 lua,雖然寫起來比較蛋疼,但是很多項目都這樣用,也許是因為沒有更好的解決方案,也許是因為技術(shù)決策者的經(jīng)驗之談,這里就呵呵了。

  6. 原生交互模塊
    對于手游,通常分為Android和iOS版本,不同的版本有一些地方需要和原生系統(tǒng)交互,例如將游戲截圖保存到相冊,這樣就需要調(diào)用原生系統(tǒng)的API。一些SDK的接入相關(guān)的東西,也可以歸于這個模塊。

  7. 一些小的工具類集合

  8. 配置表加載解析模塊
    就是將編輯器階段打包好的配置表數(shù)據(jù),在這里讀出來,存起來,用于游戲業(yè)務(wù)邏輯使用

  9. 數(shù)據(jù)讀寫模塊
    有時候需要將一些數(shù)據(jù)寫到本地,對于不同的平臺,Android,iOS,PC,存儲的路徑不同,這個模塊會將這些都封裝好,上層業(yè)務(wù)只管用就行,不需要關(guān)心路徑問題。

  10. 音頻模塊
    游戲內(nèi)音頻播放及管理,例如同一音源,最多有多少個的控制,等等

  11. 日志模塊
    日志的打印,各平臺寫入文件,設(shè)備上在屏幕上顯示下隱藏,等等

暫時先寫這么多,后面不斷補充 :)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文原創(chuàng)版權(quán)歸 博客園吳秦所有,此處純粹技術(shù)收藏,如有再轉(zhuǎn),敬請于顯示位置標(biāo)明原創(chuàng)作者及出處,以示尊重?。?作者:...
    Magic_Dong閱讀 4,705評論 0 7
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,980評論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,666評論 1 32
  • 自開始誦讀《心經(jīng)》已有半年有余,近期開始抄讀《金剛經(jīng)》,卻發(fā)現(xiàn)其中有許多讓我困惑的地方,佛經(jīng)中經(jīng)常出現(xiàn)一些神化的描...
    面壁者Z閱讀 907評論 2 2
  • 牽牛花 是淘氣的娃娃 總在繩上爬啊爬 爬累了 才焉兒焉兒的回家 牽?;?是一個個漂亮的姑娘 在葉子舞會大廳里 穿著...
    火星鵬閱讀 373評論 0 0

友情鏈接更多精彩內(nèi)容