本文主要選取了Construct二、ImactJS、LimeJS、GameMaker、CreateJS、lycheeJS、Crafty、three.js、melonJS、Turbulenz、Quintus、Cocos2d-html5等進行了簡要介紹和對比,主要是根據網上的資料整理而成。javascript
主流框架對比
Construct2
Construct 2是一個運行於Windows平臺的遊戲製做工具,它可讓沒有任何編程基礎的用戶在短期內不寫一行代碼快速開發出一款可運行於全部平臺(Windows、Mac、Linux、Android、iOS等)的遊戲。免費版能夠將遊戲導出成HTML5。收費版本分爲我的版(79英鎊)和企業版(259英鎊),能夠導出全部平臺的版本,同時提供了更多的特效和音樂。若是使用該工具盈利超過5000美圓,須要升級到企業版。
優勢:
1. 簡單易用,可實時運行遊戲
2. 強大的事件系統,能夠不經過寫代碼來控制遊戲邏輯
3. 提供了可編程擴展的接口
4. 提供了大量特效,支持物理效果
5. 支持全部平臺
6. 完整的文檔以及社區支持
缺點:
不如直接寫代碼靈活
參考資料:
ImpactJS
ImpactJS是一個基於JavaScript的HTML5遊戲引擎,同時支持PC和移動平臺瀏覽器。它是目前除了Construct2以外最受歡迎的HTML5遊戲引擎,使用須要支付99美圓。
優勢:
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)
CreateJS是Adobe官方贊助的開源開發框架,它大部分API都是基於Flash原有的API來模仿實現的,而且官方提供了直接把Flash動畫轉成JS數據包的工具,調用起來很方便。CreateJS提供了若干開發套件及工具,分別是:EaselJS(負責圖形、事件、觸控、濾鏡等功能)、TweenJS(補間動畫)、SoundJS(音頻控制)、PreloadJS(文件加載)和Zoë(生成圖片精靈及動畫數據)。
優勢:
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 Engines
2.
List of JS Game Engines
3. 對於Crafty、Lime、Frozen、Melon、Impact、Quintus框架,能夠在
Breakouts上查看用這些引擎開發同一個遊戲的效果以及代碼風格。Breakouts中使用到的特性包括碰撞檢測、精靈動畫、音效、地圖、場景切換、交互、文字渲染、移動平臺支持。
4. 以上各引擎中,除了Construct二、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 |
總結
以上各引擎中,Construct二、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的開發者和使用者都較少,相關文檔和教程也相對少,還有待觀察。
參考資料