本文主要選取了Construct2、ImactJS、LimeJS、GameMaker、CreateJS、lycheeJS、Crafty、three.js、melonJS、Turbulenz、Quintus、Cocos2d-html5等進行了簡要介紹和對比,主要是根據網上的資料整理而成。
主流架構對比
Construct2Construct 2是一個運行於Windows平台的遊戲製作工具,它可以讓沒有任何編程基礎的使用者在短時間內不寫一行代碼快速開發出一款可運行於所有平台(Windows、Mac、Linux、Android、iOS等)的遊戲。免費版可以將遊戲匯出成HTML5。收費版本分為個人版(79英鎊)和企業版(259英鎊),可以匯出所有平台的版本,同時提供了更多的特效和音樂。如果使用該工具盈利超過5000美元,需要升級到企業版。
優點:1. 簡單易用,可即時運行遊戲
2. 強大的事件系統,可以不通過寫代碼來控制遊戲邏輯
3. 提供了可程式化擴充的介面
4. 提供了大量特效,支援物理效果
5. 支援所有平台
6. 完整的文檔以及社區支援
缺點:不如直接寫代碼靈活
參考資料:1. 官方網站
2. Construct 2 vs. Javascript
ImpactJSImpactJS是一個基於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
LimeJSLimeJS是一個基於Google Closure Library開發的HTML5遊戲架構,繼承了Closure代碼易讀易懂、架構清楚的特性。同時提供了遊戲中各種通用實體的封裝,如Director、Scene、Layer、Event和Animation等,與Cocos2d的API類似。它是由Digital Fruit公司建立。
優點:
1. 基於Apache協議的開源架構
2. 功能強大,文檔齊全,與ImactJS類似
3. 支援物理效果
4. 與Cocos2d的API類似,容易上手
缺點:
依賴於Google Closure
GameMakerGameMaker與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協議的開源架構
CraftyCrafty是一個體積小、簡單、輕量級的2D的HTML5遊戲引擎,它提供了通過Canvas或DOM來繪製實體,提供了精靈Map以及SAT進階碰撞監測支援。它是由個人(Louis Stowasser)建立,同時由Github上的一些開發人員共同開發。
優點
1. 體積小
2. 輕量級引擎,不會受到架構的太多束縛
3. 同時支援PC和移動平台瀏覽器
three.jsThree.js是一個輕量級的JavaScript庫,用於在瀏覽器上建立和顯示3D圖形。它可以同時使用Canvas、SVG或WebGL進行繪製。
優點和缺點:
支援3D,但是不適合做2D遊戲
melonJSmelonJS是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. 以上各引擎中,除了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的開發人員和使用者都較少,相關文檔和教程也相對少,還有待觀察。
參考資料1. JavaScript Game Engine Comparison
如果大家覺得對自己有協助的話,還希望能幫頂一下,謝謝:)個人部落格:http://blog.csdn.net/zhaoxy2850本文地址:http://blog.csdn.net/zhaoxy_thu/article/details/11867123轉載請註明出處,謝謝!