發(fā)布時(shí)間:2024-04-13 20:41:33 瀏覽量:202次
本課程主要記錄了筆者項(xiàng)目初期碰到的并值得一說的實(shí)際業(yè)務(wù)問題,涵蓋了比較多客戶端框架設(shè)計(jì)的內(nèi)容,以及有效提升開發(fā)者編程體驗(yàn)的內(nèi)容。
主要包括以下內(nèi)容以及一些其他配套的小工具。
作者L:杭州某游戲公司客戶端主程
從事游戲行業(yè)六年有余,目前主要在公司負(fù)責(zé)通用底層框架設(shè)計(jì),及一款手游項(xiàng)目的客戶端主程
1| Luban Excel配表工具使用推薦及總結(jié)
2| 基于ECS設(shè)計(jì)下的加載管理
3| 對資源的規(guī)范化我們能做什么
4| 如何設(shè)計(jì)本地化組件
5| C# Task指南
6| 如何設(shè)計(jì)技能系統(tǒng)
7| Unity Andorid多渠道管理
附錄1| 一些關(guān)于代碼積累的記錄
附錄2| 如何設(shè)計(jì)角色屬性組件
附錄3| CliToolkit工具
附錄4| ET Entity Tree 工具
附錄5| 內(nèi)網(wǎng)Package管理
本篇轉(zhuǎn)載自《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺的第1節(jié)。
幾乎每個(gè)游戲的制作過程中都少不了和配置打交道的需求,有的是用Unity自帶的ScriptObject進(jìn)行存儲,或者更多的是使用Excel等表格工具,二次導(dǎo)出配置文件等。
每種方案見仁見智,依照不同的使用場景各有優(yōu)劣。
一般來說數(shù)據(jù)的輸入都是由策劃來完成的,而大部分策劃非常傾向于使用Excel作為日常配置使用的工具,尤其是在需要批量拉表的場景下,其他的方案在這個(gè)場景下與Excel幾乎沒有任何可比性。
Luban 倉庫地址
Luban 官方示例
Luban 官方文檔
Luban 簡單示例
Luban 簡單文檔
Luban Unity GUI 工具
如果項(xiàng)目中使用Excel作為配表的載體,大部分都會選擇使用相關(guān)的導(dǎo)表工具,可能是項(xiàng)目自己開發(fā),也可能是使用一些現(xiàn)成的工具,比如Git上tabtoy、excel2json等相關(guān)工具。
但是上面這些,包括大部分自己開發(fā)的導(dǎo)表工具,或多或少都會存在一些致命的限制,或者不夠通用,亦或者不夠靈活等等的問題。
一個(gè)具有普適性的配表工具需要兼容的場景非常多,各種語言、自定義生成模板、數(shù)據(jù)反倒、數(shù)據(jù)有效性驗(yàn)證等等。
而Luban是目前唯一一個(gè)市面上有資格成為行業(yè)配表標(biāo)準(zhǔn)的工具,未來也很難會有同類產(chǎn)品可以超越。
數(shù)據(jù)有效性驗(yàn)證
這里的數(shù)據(jù)有效性不是指bool的格子填了一個(gè)int。
有效性驗(yàn)證這個(gè)問題之前讓我非常頭大,經(jīng)常出現(xiàn)策劃跑過來找你說:“我這里程序有 bug,你檢查一下”,然后花了半天時(shí)間查到了因?yàn)榕浔碇心骋恍械膇d或者關(guān)鍵數(shù)據(jù)填寫不合法。
一次兩次還可以,次數(shù)多了難免心態(tài)不好,尤其當(dāng)人員發(fā)生變動,新來的人無法完全理解每個(gè)值的意義,就很容易放飛自我,最終就是事故,而這些問題是可以從源頭有效切斷的。
如果你項(xiàng)目中配表的內(nèi)容存在某個(gè)地方需要相關(guān)人員記住應(yīng)該怎么配,而沒有相關(guān)自動校驗(yàn),那么這里假以時(shí)日一定會出問題。
工具支持的校驗(yàn)器如下:
當(dāng)然,一個(gè)游戲的開發(fā)如果需要完整校驗(yàn)所有配置的合法性,上述這些校驗(yàn)器是無法完全滿足的,或者說這些復(fù)雜場景不應(yīng)該由Luban來解決,所以針對這些場景,在官方示例中有一個(gè)CfgValidator來處理這種問題。
?
生成模板
一個(gè)合格的配表工具應(yīng)當(dāng)兼容自定義生成代碼功能,而Luban這里使用的是scriban的方案。
當(dāng)你有代碼定制需求時(shí),99%的場景不需要改代碼生成工具的源碼即可完成定制需求。
在我整理的Luban 簡單文檔這個(gè)文檔里面包含了模板具體生成的介紹,可以加速你理解如何自定義模板。在Luban現(xiàn)有的設(shè)計(jì)下,幾乎可以兼容任何場景(包括老項(xiàng)目的遷移)。
復(fù)雜類型的填寫
在這個(gè)倉庫中,Luban 簡單示例的多態(tài)示例中可以很直觀地看到繼承相關(guān)的復(fù)雜類型應(yīng)當(dāng)如何在Excel中展開和填寫。
?
配表支持繼承在很多游戲開發(fā)場景中非常非常受用,比如游戲中的道具、裝備和英雄類的定義一定存在共用數(shù)據(jù)結(jié)構(gòu)和特化的數(shù)據(jù)結(jié)構(gòu)等,如果沒有繼承這里的代碼會非常難看,而且配表填寫的內(nèi)容也會成為災(zāi)難。
Luban支持任意復(fù)雜數(shù)據(jù)結(jié)構(gòu)的嵌套,只有在代碼中能定義出來,Luban就能解析,但是在實(shí)際使用中,并不推薦使用非常復(fù)雜的數(shù)據(jù)結(jié)構(gòu),這樣會給策劃帶來額外的填表負(fù)擔(dān),以及部分場景下的代碼生成的額外工作量。
數(shù)據(jù)及定義過濾
一些定義只需要在客戶端使用,或者只會在服務(wù)端使用,需要在生成時(shí)進(jìn)行動態(tài)剔除,當(dāng)然這個(gè)功能,一般的配表工具也都支持,但Luban額外考慮到了一些場景,比如這一條數(shù)據(jù)需要臨時(shí)注釋或者僅在測試環(huán)境下使用。
?
這里的 test就非常有用,我們會單獨(dú)配置一套test數(shù)據(jù),用于游戲中的核心邏輯驗(yàn)證,及測試用例的輔助配表,而這些數(shù)據(jù)不會出現(xiàn)在正式環(huán)境下。
數(shù)據(jù)反倒
有時(shí)候會有這種場景,項(xiàng)目一些配置需要在Unity等游戲引擎中完成,可能是一些技能的配置等,這個(gè)時(shí)候就可能需要反倒數(shù)據(jù)。
如果是一些老的項(xiàng)目需要遷移,也是一個(gè)非常合適的場景。
本地化
只要是配表工具,就一定繞不開本地化這件事,Luban同樣也提供了本地化的解決方案。
這里值得一提的是,Luban會將所有未加入翻譯表的key單獨(dú)輸出到指定的文件中,方便檢查。
其他
Luban支持的序列化格式、語言和場景非常多,這里不一一介紹了,僅對我目前使用中碰到的核心功能進(jìn)行介紹。
下面提到的內(nèi)容在Luban 簡單示例倉庫中都可以找到相關(guān)代碼。
導(dǎo)出腳本選擇
個(gè)人比較推薦實(shí)用sh作為項(xiàng)目通用導(dǎo)表工具,Windows需要配置sh文件默認(rèn)使用git bash作為打開方式即可。
?
這里主要考慮的是平臺兼容性問題,比如開發(fā)環(huán)境中可能有人使用的是Mac也可能是Windows,但是在部署時(shí)大部分都是Linux服務(wù)。如果每個(gè)平臺單獨(dú)維護(hù)一份腳本,加上不同環(huán)境和使用場景,這里對應(yīng)的文件數(shù)量就比較離譜了。
test、dev、release
建議項(xiàng)目按照這種方式來劃分配表:
auto_validation
首先,我們并不希望策劃推送一個(gè)已經(jīng)被自動流程檢測出錯誤的提交,此時(shí)需要對Git進(jìn)行Hook,核心就是提交時(shí)本地檢查一遍,如果有錯誤,禁止本次commit,將這種低級錯誤扼殺在源頭。
watch
一般可能會有這種需要對配置熱重載的功能,使用watch,配合自己項(xiàng)目中的熱重載就可以做到這邊保存Excel,Unity不需要重開游戲就可以直接加載到新配置。
以上就是《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺的第1節(jié),此篇文章比較適合從事游戲行業(yè)的開發(fā)人員、對Unity開發(fā)感興趣的同學(xué)以及希望提升底層設(shè)計(jì)能力,解決實(shí)際業(yè)務(wù)痛點(diǎn)的讀者。
讀完全篇后你會深入理解如何實(shí)現(xiàn)實(shí)際業(yè)務(wù)需求,提升底層設(shè)計(jì)能力以及部分文章的配套Demo。
因篇幅問題,文章中涉及的外部鏈接通過原文《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺查看。
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白。快來試試!
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動畫軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動畫軟件或動畫工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
7. 3D動漫建模全過程,不是一般人能學(xué)的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開發(fā)一款游戲(游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧)
?游戲開發(fā)入門必看:五大獨(dú)立游戲開發(fā)技巧無論您是剛剛起步開發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無論你對游戲有著什么樣的概念,都
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
最新文章
同學(xué)您好!