發(fā)布時(shí)間:2023-11-27 18:55:45 瀏覽量:155次
很多剛剛接觸到游戲開發(fā),準(zhǔn)備大展拳腳的小鮮肉們,往往在技術(shù)選型這第一關(guān)就栽了跟頭。畢竟網(wǎng)絡(luò)上的游戲引擎良莠不齊,官網(wǎng)上相關(guān)資料也比較少,而選擇一個(gè)適合的游戲引擎是一個(gè)項(xiàng)目最基礎(chǔ),也是很核心的一部分。
試想一下,在游戲開發(fā)進(jìn)行到中后期的時(shí)候,才發(fā)現(xiàn)項(xiàng)目引入的游戲引擎與需求相悖,這時(shí)候不管是重新做一些修修補(bǔ)補(bǔ)的工作或者更換游戲引擎,這都是相當(dāng)耗費(fèi)人力物力的一件事。為了避免這種情況的出現(xiàn),在前期選擇適合項(xiàng)目需求的游戲引擎顯得尤為重要。
接下來我們來聊一聊如何去選擇適合項(xiàng)目的 JS 游戲引擎。
游戲場景分類
在剛接到游戲需求時(shí),我們可以從以下幾個(gè)方面進(jìn)行考量,分析出游戲需求場景所屬,從而作為我們選擇游戲引擎的依據(jù)。
游戲效果呈現(xiàn)方式( 2D ? 3D ? VR ?)
這與游戲引擎能夠支持的渲染方式直接掛鉤?,F(xiàn)在的 H5 游戲渲染方式一般有 2D 渲染、3D 渲染、VR 渲染三種。
而 2D 渲染一般也有三種:Dom 渲染、Canvas 渲染、WebGL 渲染。Dom 由于性能原因,一般只適合做一些動(dòng)畫效果較少,交互較少的小游戲,本文主要針對 Canvas 和 WebGL 展開介紹。
一般來說,對于 2D 小游戲來說,Canvas 渲染已經(jīng)足夠。然而 Canvas 渲染由于底層封裝層次多,不足以支撐起大型游戲的性能要求,因此大型游戲最好選擇 WebGL 渲染或者瀏覽器內(nèi)嵌 Runtime 。
游戲復(fù)雜度
這與游戲引擎能夠支持的功能,提供的API,性能等方面關(guān)系比較大。
游戲引擎推薦
筆者從業(yè)界較流行的一些框架,進(jìn)行以下幾個(gè)方面對比,希望能從客觀數(shù)據(jù)上給大家的技術(shù)選型帶來建議和參考。
引擎支持的渲染方式
github上的 star 數(shù)
更新時(shí)間
文檔詳細(xì)度
周邊產(chǎn)品
Egret 周邊產(chǎn)品
白鷺引擎是企業(yè)級游戲引擎,有團(tuán)隊(duì)維護(hù)。Egret 在工作流的支持上做的是比較好的,從 Wing 的代碼編寫,到 ResDepot 和 TextureMerger 的資源整合,再到 Inspector 調(diào)試,最后到原生打包(支持 APP 打包),游戲開發(fā)過程中的每個(gè)環(huán)節(jié)基本都有工具支撐。官網(wǎng)上的示例,教程也是比較多。值得一提的是,今年5月白鷺引擎支持了 WebAssembly ,這對于性能的提升又是一大里程碑。
在渲染模式上,LayaAir 支持 Canvas 和 WebGL 兩種方式;在工具流的支持程度上,主要是提供了 LayaAir IDE。LayaAir IDE 包括代碼模式與設(shè)計(jì)模式,支持代碼開發(fā)與美術(shù)設(shè)計(jì)分離,內(nèi)置了 SWF 轉(zhuǎn)換、圖集打包、JS 壓縮與加密、APP 打包、Flash 發(fā)布等實(shí)用功能。
一般來說,WebGL 的渲染速度都會(huì)比 Canvas 快,這是由倆者的繪制路徑?jīng)Q定的。Pixi 最大的特點(diǎn)在于,Pixi 具有完整的 WebGL 支持,卻并不要求開發(fā)者掌握 WebGL 的相關(guān)知識,并在需要時(shí)無縫地回退到 Canvas 。相較于很多同類產(chǎn)品,它的渲染能力是比較強(qiáng)大的。然而,Pixi 也有不足的地方,Pixi 對于動(dòng)畫的支持是比較缺乏的,在實(shí)際開發(fā)中,常常需要引進(jìn)額外的動(dòng)畫庫,如 GSAP。
Phaser 在渲染方面直接封裝了 Pixi;架構(gòu)方面,Phaser 內(nèi)嵌了3個(gè)物理引擎(Arcade Physics、Ninja、p2.js),提供粒子系統(tǒng)、動(dòng)畫、預(yù)下載和設(shè)備適配方案;兼容性方面,Phaser 的焦點(diǎn)是放在移動(dòng)端瀏覽器上的;API 方面,Phaser 能實(shí)現(xiàn)豐富的游戲功能,適合復(fù)雜度高的游戲開發(fā)。
CreateJs 周邊產(chǎn)品
CreateJS 官方提供了 TweenJS 支持動(dòng)畫開發(fā),同時(shí)通過 SoundJS 和 PreLoadJS 提供了音頻和預(yù)下載的支持,對于 H5 游戲基礎(chǔ)功能的支持是足夠的。在兼容性方面,CreateJS 支持 PC 端和移動(dòng)端幾乎所有的瀏覽器。此外,CreateJS 還支持用 flash CC 開發(fā)導(dǎo)出由 CreateJS 渲染的 H5 游戲。
Hilo 是阿里團(tuán)隊(duì)推出的一個(gè)開源項(xiàng)目,支持模塊化開發(fā),同時(shí)提供了多種模塊范式的包裝版本和跨終端解決方案,適合用來開發(fā)營銷小游戲。其體積也是比較輕量的,只有70kb左右。Hilo 支持 DOM 渲染,Canvas 渲染和 WebGL 渲染,同時(shí)集成了 Hilo Audio, Hilo Preload。其后推出的 Hilo 3D 也是其亮點(diǎn)之一。
Cocos2d-x 是業(yè)界比較老牌的游戲引擎了,同時(shí)支持 C++ ,Lua 和 JavaScript 三種開發(fā)語言,官方用例來看更傾向于 C++ 開發(fā),適合做一些中大型游戲開發(fā)。Cocos2d-x 提供 Cocos Creator 游戲開發(fā)工具,組件化,腳本化,數(shù)據(jù)驅(qū)動(dòng),跨平臺發(fā)布。
lufylegend.js 的最新更新是在16年,不過其社區(qū)還是十分活躍的,如果遇到什么開發(fā)問題,可以很方便地在社區(qū)上找到解決的方案。lufylegend.js 可以支持基礎(chǔ)的游戲功能,但是其可拓展性不是很強(qiáng)。
相信對于很多有關(guān)注 3D 游戲的開發(fā)者來說,Three.js 早已經(jīng)耳熟能詳了。實(shí)際上,Three.js 官方定位并不是游戲引擎,而是一個(gè) JS 3D 庫。Three.js 更傾向于展示型的視覺呈現(xiàn),比較少直接拿 Three.js 來開發(fā) H5 游戲。渲染環(huán)境上,Three.js 支持 WebGL 和 CSS3D 兩種渲染模式。
從渲染支持程度來看,PlayCanvas 不僅支持 3D WebGL渲染,同時(shí)保持到 VR 的支持,擁有比較好的拓展性。在工具流的支持上,提供了在線編輯器和發(fā)布托管等服務(wù)。從官方教程上看,教程也是比較詳細(xì)的。
現(xiàn)在市場上的 H5游戲引擎很多,很難去直接定義哪個(gè)引擎的好壞,只能說每個(gè)引擎都有自己的特性,在某方面跟項(xiàng)目的契合程度比較高,筆者根據(jù)現(xiàn)在市場上比較熱門的幾大引擎做了幾點(diǎn)比較,希望能給剛?cè)腴T的你做技術(shù)選型的時(shí)候有一點(diǎn)幫助,找到適合項(xiàng)目的引擎,更快、更準(zhǔn)、更高效率地完成項(xiàng)目需求。
喜歡小編文章的可以點(diǎn)個(gè)贊關(guān)注小編哦,小編每天都會(huì)給大家更新文章。
如果你也想學(xué)習(xí)前端,那么幫忙轉(zhuǎn)發(fā)一下然后再關(guān)注小編后私信【1】可以得到我整理的這些前端資料了(私信方法:點(diǎn)擊我頭像進(jìn)我主頁有個(gè)上面有個(gè)私信按鈕)
熱門資訊
探討游戲引擎的文章,介紹了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)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵碓囋嚕?/span>
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇。《天命奇御》具有多線劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)漫建模全過程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動(dòng)畫軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫軟件或動(dòng)畫工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫的軟件程序。但是,在3D動(dòng)畫軟件中還包含了其他類型的...
?三昧動(dòng)漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
9. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
10. Unity3D入門:手把手帶你開發(fā)一款坦克大戰(zhàn)的游戲
Unity工程創(chuàng)建完成后如圖所示: 接下來應(yīng)該導(dǎo)入此項(xiàng)目所需的Unity Package文件,要用到的Unity package文件大家可以去Unity3D的官方網(wǎng)站下載(地址:ht...
最新文章
同學(xué)您好!