WEB前端的大部分工作都集中在利用現(xiàn)有主流前端框架(vue/react/angular)以及周邊開源代碼基礎(chǔ)生態(tài)來組織整個項目的架構(gòu)和實現(xiàn)業(yè)務(wù)邏輯代碼上,而且往往同樣的邏輯可以選擇不同的抽象方式來實現(xiàn),不同的抽象方式在思想上和實現(xiàn)上也有很大的不同,例如: redux/mobx/rxjs.
游戲的開發(fā)工作主要集中在基于游戲引擎標準開發(fā)流程的 UI設(shè)計動畫效果的實現(xiàn)和游戲交互邏輯的完成上。對游戲開發(fā)而言,需要使用具象思維能力來組織貼圖等資源以完成最終產(chǎn)品。實現(xiàn)的過程相對來說是固定和模式化的(使用一些游戲引擎的顆粒、骨骼、幀動畫等 API)。
通過使用框架本身提供的 API+ IDE的完備技巧+ webpack等打包工具, WEB前端在工程領(lǐng)域已經(jīng)成熟,可以實現(xiàn)“coding- debug-部署”一整套成熟的生產(chǎn)流程,而框架本身往往只提供核心的“data-view-debug”功能,可以根據(jù)項目需要引入不同的設(shè)計模式。
對于H5游戲開發(fā)領(lǐng)域來說,由于不同游戲引擎的核心代碼差別很大,為了保護核心源代碼和開發(fā)效率等原因,游戲引擎廠商往往會高度定制一套服務(wù)于該游戲引擎的開發(fā)流程:從 IDE到代碼架構(gòu)再到部署。所以H5游戲開發(fā)相對來說,遵循“慣例”是非常重要的一環(huán),H5游戲開發(fā)在選定游戲引擎后,通常只限于在官方推薦的游戲引擎中進行選擇。
Cocos Creator的集成開發(fā)環(huán)境已經(jīng)趨于成熟,整個功能都集成在 Cocos Creator的客戶機上,除了需要使用 VSCode來編寫代碼邏輯,場景編輯、動態(tài)組件設(shè)置、資源管理、部署等都可以在一個客戶端完成。
相對來說 Egret 的開發(fā)環(huán)境有些混亂,有 Egret Launcher / Wing3 / Egret UI Editor / Egret Pro 等各種開發(fā)工具,一些功能相互覆蓋,但各不相同,產(chǎn)品線混亂,對初學(xué)者來說很不友好。
CocosCreator在官方文檔方面更勝一籌,從基本的游戲 Demo教程到 API文檔,它都比 Egret具有更高的質(zhì)量。CocosCreator也比 Egret在社區(qū)熱度和市場份額方面進行了更多的討論,因此更容易找到解決方案,對新手更友好。
在可視化編輯器上的一些差別
CocosCreator官方推薦使用 GUI操作在客戶端完成大多數(shù)場景、圖形、動畫工作,只在代碼層編寫業(yè)務(wù)代碼,以及一些更復(fù)雜抽象的動畫邏輯。
優(yōu)勢:在動畫效果和場景的制作方面上更加直觀、方便;
缺點:由于視覺編輯器的功能繁多,學(xué)習(xí)操作有一定難度。
目前, Egret的可視化編輯器非常簡陋,動畫和業(yè)務(wù)邏輯都是由代碼層編寫的。
優(yōu)勢:對于 web開發(fā)者來說,開發(fā)方式更加熟悉;
缺點:制作場景和動畫效果不直觀,需要更多的思考。
從 WEB前端轉(zhuǎn)到H5游戲開發(fā),首先要強化意象與抽象相互轉(zhuǎn)化的思維能力,具備從具體動畫效果中抽象化代碼控制邏輯的能力會更有優(yōu)勢。選擇了游戲引擎之后,還需要全面了解該引擎的開發(fā)過程,其中有一部分需要學(xué)習(xí):游戲引擎自我研究或者推薦的 IDE的使用,可視化場景編輯器的使用,代碼架構(gòu)方法,游戲引擎 API,調(diào)試方法,部署方法。
個人認為CocosCreator產(chǎn)品線和文檔比較清晰,難度曲線合適,適合從web前端開發(fā)游戲。