Cocos遊戲設計心得(二)

哈嘍大家好,我是妖妖,接着上期的我們繼續說,遊戲設計我的心得。

前面呢,我們已經提到過了遊戲是使用分包設計的,每個包只包含遊戲的部分內容,都是通過解壓包的形式進行獲取到包文件的,最後加載執行,那麼每一個包要不要格式

統一點呢?答案是肯定的,這樣主要的優點就是好看,哈哈哈!

我們暫時將每個遊戲包定爲這樣:

 

<每個遊戲包>
├─── initial     原始資源配置
├─── res        資源
└─── src        程序

原始資源目錄 initial

這個目錄可以存放一些當前遊戲包的原始資源和配置表等,但是這個目錄並不會算遊戲的資源,僅做存放參與遊戲開發時的一些東西,你可以認爲他就是初始草稿文件夾,所以這個目錄不會打包進包文件中。這個目錄中可以存放一些如;

1. 遊戲數據庫配置文件,一般是使用ini,json,txt,csv,excel等根據個人而定,不過大多大型遊戲都會使用csv,excel,因爲策劃配置的時候方便。
2. UI,特效與模型配置資源原始文件,這些你可以使用現成的工具導出,當然你也可以爲了後期的發佈方便着想,自己編寫腳本使用的自動化工具(後期會與大家分享相關工具的製作)。
3. 也可以放網絡協議文件,有可能你是用Protobuf進行的通信,有可能自定義的協議文件然後通過腳本轉成不同語言版本的方式。4. 對於一些劇情較多的遊戲來說行爲樹文件應該會有AI要用到。 
5. 一切認爲與當前遊戲包相關的東西都可以放在這裏,當然最好目錄清晰。

資源目錄 res

 

<遊戲包名:如(Fish)>
└─── res
┆   ├─── ...

有的同學可能會疑惑爲什麼res上還要有一層呢?這其實和遊戲包加載後的遊戲文件路徑映射有關係。你可以試想一下,如果以後遊戲多了不止一個遊戲的話,在映射路徑的時候都爲res路徑,加載遊戲資源路徑的時候會有什麼後果,呵呵呵,完全不知道你找的是哪個res好嘛!所以在外側再加一個也就成了避免包文件衝突的方式,雖然你可以採取其他方式,但是這個方法我認爲是目前比較好的了。

程序文件目錄 src

這個目錄存放遊戲的所有程序。當然程序也存在文件衝突的問題,所有也會有一層額外的包目錄。目錄結構大致如下;

 

src
└─── <遊戲包名>       
┆   ├─── loader.lua   包加載器,可選內容可以自定義
┆   ├─── ui                 遊戲ui控制模塊
┆   ├─── logics         遊戲邏輯模塊
┆   └─── modules     遊戲模塊(不是每個遊戲都要有,一般main包有一套就可以了)

loader.lua 當前包文件的加載器。每個包文件都有加載器,一般情況在解壓遊戲zip,加載完包文件後,會使用一個加載器處理loaderZipPack(zipName)做預加載一些資源配置,當然在完全不使用此包後,也可以使用加載loader.lua中的releaseZipPack(zipName)去卸載所有關於此包的內容;當然這個可選,如果沒有則調用默認的加載器。
ui遊戲UI控制,這是與遊戲UI具體控件之間操作有關的東西,一般只專屬於當前遊戲。
logics 遊戲邏輯,這是與遊戲具體邏輯有關的程序集,一般屬於當前遊戲專有。
modules遊戲模塊,這是遊戲的通用模塊程序集,與具體遊戲無關。

這裏多提一下modules中的設計,一般會是這樣設計一個Base.lua,一個Manager.lua文件進行配套使用,最終由Manager文件進行單例進行操作使用。如下


在使用啓動這些module時,可以在loader中集體初始化,如下:

這樣我們可以方便很多的去書寫我們相關的logic邏輯模塊的內容了。

好了今天就到這裏,你get到什麼了嗎?

(Cocos遊戲設計心得(三)已經出爐請慢慢品嚐)妖妖只爲分享純乾貨,謝謝!

其實這些設計理念也完全適用於Creator,有什麼感覺說的不對的請各位大大們見諒。
最後留下博客以供學習使用妖妖:taoqy666.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章