主流HTML5遊戲開發引擎的分析和對比
阿新 • • 發佈:2019-01-24
本文主要選取了Construct2、ImactJS、LimeJS、GameMaker、CreateJS、lycheeJS、Crafty、three.js、melonJS、Turbulenz、Quintus、Cocos2d-html5等進行了簡要介紹和對比,主要是根據網上的資料整理而成。
主流框架對比
Construct2
Construct 2是一個運行於Windows平臺的遊戲製作工具,它可以讓沒有任何程式設計基礎的使用者在短時間內不寫一行程式碼快速開發出一款可運行於所有平臺(Windows、Mac、Linux、Android、iOS等)的遊戲。免費版可以將遊戲匯出成HTML5。收費版本分為個人版(79英鎊)和企業版(259英鎊),可以匯出所有平臺的版本,同時提供了更多的特效和音樂。如果使用該工具盈利超過5000美元,需要升級到企業版。優點: 1. 簡單易用,可實時運行遊戲
2. 強大的事件系統,可以不通過寫程式碼來控制遊戲邏輯
3. 提供了可程式設計擴充套件的介面
4. 提供了大量特效,支援物理效果
5. 支援所有平臺
6. 完整的文件以及社群支援
缺點: 不如直接寫程式碼靈活
參考資料:
ImpactJS
優點:
1. 提供了靈活的關卡編輯器,可以快速構建遊戲地圖
2. 提供了強大的除錯工具
3. 提供了Ejecta可以將JavaScript的執行結果通過OpenGL渲染出來,可以在iOS平臺上獲得與原生應用相近的效率
4. 文件齊全,有兩本專門介紹ImpactJS開發的書
5. 支援物理效果
6. 支援自己編寫外掛來擴充套件
App Store遊戲
1. Biolab Disaster
2. Drop JS
LimeJS
LimeJS是一個基於Google Closure Library開發的HTML5遊戲框架,繼承了Closure程式碼易讀易懂、架構清楚的特性。同時提供了遊戲中各種通用實體的封裝,如Director、Scene、Layer、Event和Animation等,與Cocos2d的API類似。它是由Digital Fruit公司建立。優點:
1. 基於Apache協議的開源框架
2. 功能強大,文件齊全,與ImactJS類似
3. 支援物理效果
4. 與Cocos2d的API類似,容易上手
缺點:
依賴於Google Closure
GameMaker
GameMaker與Construct 2類似,都是一個遊戲製作工具,可以匯出到各個平臺執行,分為免費版、標準版(49.99美元)、專業版(99.99美元)和大師版(799.99美元)。其中免費版只能匯出Mac和Windows版本,匯出HTML5需要大師版或者專業版(再額外支付99.99美元)。優點和缺點:
優勢與Construct2類似,但價效比不如Construct2高
CreateJS(EaselJS)
優點:
1. Flash開發者很容易上手
2. 提供了Flash轉html5的工具,可以將部分Flash程式碼進行轉換再修改
3. 基於MIT協議的開源框架
4. 類庫設計非常獨立,包含不同的模組,可選擇性使用
lycheeJS
lycheeJS是一個環境獨立的JavaScript遊戲引擎,可以在任何支援JavaScript的環境中執行。它的理念是做最快的JavaScript遊戲引擎。優點:
1. 同時支援PC(Firefox、Chrome、Opera、Safari、IE)和移動平臺(WebKit、Chrome、Firefox、Safari)的瀏覽器
2. 提供了CDN、WebSockets、SPDY、HTTP2.0以及遊戲截圖的支援
3. 提供了可以直接匯出第三方(Facebook、AppStore、Google Play Store)資源包來發布
4. 基於MIT協議的開源框架
Crafty
Crafty是一個體積小、簡單、輕量級的2D的HTML5遊戲引擎,它提供了通過Canvas或DOM來繪製實體,提供了精靈Map以及SAT高階碰撞監測支援。它是由個人(Louis Stowasser)建立,同時由Github上的一些開發者共同開發。優點
1. 體積小
2. 輕量級引擎,不會受到框架的太多束縛
3. 同時支援PC和移動平臺瀏覽器
three.js
Three.js是一個輕量級的JavaScript庫,用於在瀏覽器上建立和顯示3D圖形。它可以同時使用Canvas、SVG或WebGL進行繪製。優點和缺點:
支援3D,但是不適合做2D遊戲
melonJS
melonJS是melonJS團隊對Javascript熱情以及開發經驗的結晶,是一個簡單、免費、而且獨立的類庫。優點
1. 輕量級的2D引擎
2. 支援所有主流的PC和移動平臺瀏覽器
3. 支援使用Tiled map editor來建立和編輯地圖
4. 支援多聲道音訊
5. 基於MIT協議的開源框架
Turbulenz
Turbulenz是一個開源的HTML5遊戲引擎,提供了可以執行在Windows、MacOS、Linux上的SDK,允許開發人員建立高質量和硬體加速的2D、3D遊戲。包括以下功能:非同步資源載入、進行特效和粒子渲染、支援物理效果、碰撞檢測以及動畫、3D音效支援、支援網路互動以及社交網路分享、場景和資源的管理。優點:
1. 功能強大,同時支援2D和3D
2. 基於MIT協議的開源引擎
Quintus
Quintus是一個容易上手、輕量級、且模組化的HTML5遊戲引擎。它引用面向物件的思想來進行HTML5遊戲開發,同時依賴於jQuery來提供事件處理機制和元素選取操作。缺點
1. 依賴於jQuery
2. 目前引擎仍處於初級階段,還很不成熟
Cocos2d-html5
Cocos2d-html5是一款基於Cocos2d-x API的2D開源免費HTML5遊戲引擎。它目前通過canvas進行渲染,將來會支援WebGL。它由國內Cocos2d-x核心團隊主導開發和維護,行業領袖、HTML5大力推動者Google為這個專案提供支援。同時,Zynga、Google等大公司的工程師也參與到它的設計工作中。優點: 1. 與Cocos2d的API類似,容易上手
2. 中文文件齊全,資料豐富
3. 基於MIT協議的開源引擎
各框架具體引數對比
1. 各HTML5遊戲框架對比HTML5 Game Engines2. List of JS Game Engines
3. 對於Crafty、Lime、Frozen、Melon、Impact、Quintus框架,可以在Breakouts上檢視用這些引擎開發同一個遊戲的效果以及程式碼風格。Breakouts中使用到的特性包括碰撞檢測、精靈動畫、音效、地圖、場景切換、互動、文字渲染、移動平臺支援。
4. 以上各引擎中,除了Construct2、ImpactJS、GameMaker是收費的之外,其他引擎都是免費並且開源的。對於開源引擎,我們可以從Github上面的關注度瞭解到該引擎的流行程度,關注的人越多,遇到問題越容易解決。同時一般來說,專案開發者越多,版本更新越快;專案的進行時間越長則越成熟。下面將對各開源引擎的開發者人數、專案啟動時間、關注度進行對比。
Game Engine | Github commits | Github contributors | Start time | Github Star | Github Fork |
LimeJS | 532 | 22 | 2011.1.19 | 1091 | 187 |
EaselJS | 784 | 15 | 2011.1.23 | 2758 | 650 |
lycheeJS | 4 | 1 | 2012.9.5 | 110 | 20 |
Crafty | 1182 | 67 | 2010.11.5 | 993 | 225 |
three.js | 6409 | 198 | 2010.3.23 | 12691 | 2816 |
melonJS | 1287 | 15 | 2011.4.11 | 643 | 137 |
Turbulenz | 736 | 12 | 2013.4.26(最近才開源) | 1522 | 207 |
Quintus | 118 | 11 | 2012.8.4 | 450 | 89 |
Cocos2d-html5 | 2706 | 39 | 2012.1.28 | 735 | 303 |
總結
以上各引擎中,Construct2、ImpactJS、GameMaker三個是收費的,其中Construct2與GameMaker更像一個遊戲開發工具,可以實現不用寫一行程式碼來製作遊戲,更適合於沒有程式設計基礎的人使用。而ImpactJS作為一個高質量的框架,且易於擴充套件,雖然是收費的,但是物有所值。開源引擎中,three.js是最火的,但是僅限於開發3D遊戲。其次是CreateJS,由Adobe官方贊助且採用Flash類似的API以及模組化開發,是Flash開發者以及將Flash遊戲轉換成html5不可多得的選擇。Turbulenz雖然開源時間比較晚,但頗有後來者居上的趨勢,由於其對2D和3D的同時支援,是同時開發2D和3D遊戲的最佳選擇。LimeJS與Crafty相比的優勢在於有一個公司進行維護,相比個人要更穩定,但是需要依賴於Google Closure,也使之成為一個重量級的框架。Crafty體積小、輕量級,更適合於小遊戲的開發。Cocos2d-html5作為國產框架的一個優勢在於中文文件和教程多,且得到了Google的支援,但相比ImpactJS、CreateJS仍不夠成熟。melonJS、Quintus、lycheeJS的開發者和使用者都較少,相關文件和教程也相對少,還有待觀察。