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