Unity架構(gòu)師必備的開源庫,讓你3天搭建商用游戲框架
現(xiàn)在Unity的相關(guān)技術(shù)已經(jīng)都非常常熟了,如果你的技術(shù)能力與閱歷夠,搭建一個(gè)商用的游戲框架,你只需要3天的時(shí)間。今天給大家分享一個(gè)Unity老鳥3天能搭建一個(gè)自己的商用框架的幾個(gè)必備的開源庫,方便大家學(xué)習(xí)與使用,同時(shí)學(xué)習(xí)這些有前途的開源庫也能讓你在公司里面游刃有余。 ?
1: 搭建商用Unity框架必須要考慮的幾個(gè)點(diǎn)
? 首先我們做商用的Unity游戲開發(fā)框架要考慮一些點(diǎn),做一些取舍,來做好技術(shù)選型,主要考慮以下幾個(gè)方面: ? ??1:采用什么樣的技術(shù)來做熱更新,目前主流的熱更新方案有:??Lua解決方案,?ILRuntime解決方法,TypeScript的puerts解決方案, IL2CPP的解決方案,?目前強(qiáng)烈推薦大家使用IL2CPP的解決方案huatuo/HybirdCLR。因?yàn)檫@個(gè)方案是性能最好的,不會改變?nèi)魏蜺nity開發(fā)方式的最好的一種熱更方案,也將會是Unity方案的主流。 2:選擇一個(gè)好的資源管理技術(shù)方案,資源管理技術(shù)方案是游戲開發(fā)中最重要代碼量最多的方案之一。資源管理主要是要考慮開發(fā),發(fā)布,打空包,資源熱更新,打包增量與更新,?多平臺多渠道多版本管理等需求。 3: 其它一些小模塊與游戲制作相關(guān)的工具,比如配置表,UI框架,時(shí)間管理,定時(shí)器,IO,Debug模塊等。 4: 采用什么樣的開發(fā)模式來組織業(yè)務(wù)邏輯代碼,?Unity是基于組件化開發(fā)模式的,很多游戲框架也會做一些小的改動(dòng)來定義項(xiàng)目中的開發(fā)模式,比如有些框架用狀態(tài)機(jī)作為流程切換與管理的主線,有些用傳統(tǒng)的方式來做流程與管理的主線,具體可以根據(jù)自己要做的游戲類型,?開發(fā)習(xí)慣,與團(tuán)隊(duì)成員的技術(shù)能力等來分析與選擇。 ? 搞清楚了主要的這些點(diǎn)以后,我們就開始針對這些來列舉一些開源的框架,方便大家來學(xué)習(xí)與使用,讓你快速的搭建一個(gè)自己的框架出來,做框架不再是一個(gè)很高級的事情,按照自己的想法來定義一個(gè)開發(fā)模式,讓自己后期開發(fā)游戲舒服快樂即可。我不主張直接用一個(gè)商用的整體框架,?比如GameFramework等,?除非他們和你的項(xiàng)目管理與組織方式非常貼近,否則要根據(jù)自己的項(xiàng)目實(shí)際來定制一個(gè)適合自己的開發(fā)模式與工作流。但是不可否認(rèn),GameFramework, MotionFramework,ET等游戲開發(fā)框架里面還是有很多值得學(xué)習(xí)的設(shè)計(jì)理念與習(xí)慣,所以作為開發(fā)者我們也要學(xué)習(xí)相關(guān)的一些架構(gòu)設(shè)計(jì)與原則方式。 ? ?
2: 商業(yè)框架必備:?當(dāng)前流行的開源模塊
?
??我們不給大家推薦整體的框架,因?yàn)檫@個(gè)和你的游戲類型與管理方式,技術(shù)儲備等相關(guān)。我給搭建推薦幾個(gè)主要的模塊框架,這些模塊能很好的處理游戲開發(fā)中的特定問題,同時(shí)這些框架模塊也是在商業(yè)項(xiàng)目中經(jīng)過驗(yàn)證的。 ???首先是熱更新,現(xiàn)在只要是新項(xiàng)目,我都推薦大家使用基于IL2CPP vm的熱更方式huatuo/HybirdCLR, huatuo現(xiàn)在是途游開源的,HybirdCLR團(tuán)隊(duì)之前在途游,后來做了一個(gè)類似的框架HybirdCLR, 所以他們應(yīng)該是同文同種,都可以用,具體用哪個(gè),可以自己判斷, 我把兩個(gè)項(xiàng)目的github地址都放出來: ??Huatuo: 途游開源,
https://github.com/tuyoogame/
? ?HybirdCLR: focus creative games(代碼哲學(xué))開源:?
https://github.com/focus-creative-games
熱更新基于huatuo/HybirdCLR來進(jìn)行項(xiàng)目組織與構(gòu)建。選擇huatuo/HybirdCLR最大的好處幾乎不會影響到正常的Unity開發(fā),你正常的使用Unity開發(fā)就可以了,熱更新偷偷的就可以給你處理了。 ? ??選好了熱更新模塊以后,接下來就是資源管理模塊,我推薦大家使用途游開源的
YooAsset框架
,?YooAsset框架目前在很多項(xiàng)目中在用,因?yàn)橐彩峭居谓?jīng)過了商業(yè)驗(yàn)證后開源出來的,能幫我們節(jié)省很多的開發(fā)時(shí)間,同時(shí)用起來也非常的方便,他有Edtior模擬器運(yùn)行模式,單機(jī)運(yùn)行模式,聯(lián)機(jī)運(yùn)行模式。 項(xiàng)目仍然來自于途游開源:?
https://github.com/tuyoogame/
熱更框架與資源管理框架一確定,你的游戲開發(fā)框架基本上都不會太差,能達(dá)到商用級別。而且這兩個(gè)都來自于途游的大廠開源,可以放心的使用。 ? 接下來就是游戲數(shù)據(jù)配置表框架,這里的話給大家推薦的是luban與FlashExcel。luban更完善與強(qiáng)大,能處理好{excel(csv,xls,xlsx)、json、bson、xml、yaml、lua、unity ScriptableObject} => {binary、json、bson、xml、lua、yaml、erlang、 custom format}等格式,F(xiàn)lashExcel專門處理配置表格。分別給到大家他們的項(xiàng)目地址: FlashExcel:
https://github.com/nizhenchao/FlashExcel
luban來自與focus creative games(代碼哲學(xué))開源:?
https://github.com/focus-creative-games/luban
3?如何能定制好自己的游戲框架
?
??前面我們講過
游戲框架的核心就是定義一種針對某種類型項(xiàng)目的開發(fā)的協(xié)作與管理的方式
。作為架構(gòu)師如何能夠定制好自己的游戲框架,我覺得重要的有幾點(diǎn): (1)?掌握基本的原理原則與處理方式。雖然很多東西不用我們寫,但是基本的原理原則和使用方式我們要知道,比如打空包,技術(shù)原理是如何做的,比如增量更新技術(shù)原理是如何做的,比如熱更新的技術(shù)原理如何等,這些能夠幫助我們更好的使用與閱讀維護(hù)別人寫的底層的庫。為什么很多小伙伴自己用庫,怎么都用不好,看不懂,其實(shí)就是知識的儲備量不夠,如果你能了解主流的解決方案與思路,再去看別人寫的源碼,你會發(fā)現(xiàn)開源庫的好處就是別人花了大量的時(shí)間做了你要做的工作,而且還不用自己親自動(dòng)手,前提是你有和作者接近的知識儲備,所以我們要注重我們的基礎(chǔ)知識與基本原理原則的學(xué)習(xí)與積累。 (2)?搭建商用游戲框架還有重要的一個(gè)點(diǎn)就是先學(xué)習(xí)別人搭建的游戲開發(fā)框架是如何組織管理項(xiàng)目的,它們的設(shè)計(jì)的優(yōu)點(diǎn)與缺點(diǎn)是什么?適合哪些游戲,哪些項(xiàng)目。很多人可能在公司用GameFramework/MotionFramework等,雖然我不建議大家在沒有搞懂自己的游戲類型與開發(fā)管理方式是否與這類框架本身的理念符合時(shí)就盲目的使用開源的游戲框架,而不是自己定制,但是我還是推薦大家學(xué)習(xí)一些游戲開發(fā)框架的組織方式與設(shè)計(jì)理念,為定制你自己的開發(fā)流做好一些設(shè)計(jì)準(zhǔn)備。