目前有哪些比較成熟的 HTML5 遊戲引擎?
https://gist.github.com/768272 這上面貌似列出了目前所有的HTML5遊戲引擎,其中哪些比較成熟呢?最好能開發MMO遊戲的,比如黎明帝國
-----------------------------2015.2.6更新-----------------------------------
為了不給大家造成困擾,以後用egret引擎創作(且egret團隊知道的)上線的遊戲都放這裡了。傳送門:案例-Egret Engine-免費開源HTML5遊戲引擎-----------------------------2015.1.23更新-----------------------------------獵豹瀏覽器(版本2.27)鬥地主(棋牌)
應用匯,檸檬手機助手,優酷遊戲中心,360,天宇應用商店,聯想商店 ,小米應用商店 暴走西遊(飛行射擊)(H5版本後續上線)-----------------------------2015.1.19更新-----------------------------------QQ空間 玩吧 愚公移山(休閑)獵豹瀏覽器(版本2.26) 熱血戰機(飛行射擊)狂掛傳奇(放置RPG)-----------------------------2015.1.11更新(基於王哲同學的更新)-----------------------------------我也比較懶,所以還是沿用一下王哲同學的數據。如王哲同學說的,以上數據是12月17收集Qzone玩吧裡面HTML5遊戲所用的引擎情況——這裡面提到Egret使用為零,如果只看數據,的確不樂觀,我也很不愉快。不過還好是14年12月17日的數據,不是15年12月17日的,否則我就真的要挖開一條地縫鑽進去了。:)12月17日之前,業內已經有很多遊戲應用白鷺引擎和相關的工具做開發了,Egret Engine 1.0是14年8月正式發布,那時H5小遊戲形態剛剛借著神經貓重新讓web遊戲開發者對H5技術在移動app中的應用場景重燃希望;Egret Engine 1.5是12月12日才發布,目前已經有一些知名CP使用Egret開發的H5遊戲產品都處於灰度測試階段或開發階段,跟王哲同學和大夥正好也可以聊下,這些遊戲項目已有多款有核心玩法的遊戲正在排隊接入QQ玩吧和其他重要渠道,15年1季度還將陸續聯合知名渠道發布這些更精彩的遊戲項目,力爭為今年的HTML5遊戲落地開個好頭!
王哲同學的數據表我還可以根據我的個人看法再做2點補充。第一,我的觀點跟王哲同學一致,就是數據表格反映的過去情況的確殘酷,也說明了H5遊戲過去在用戶體驗和盈利能力上的孱弱。其實觸控的一部分同學在H5的相關產品上也比白鷺早幾年就開工了,但是基於表格的數據,到了14年底才爭取到了玩吧的20款產品,居然還讓傳統一套基於DOM技術肆意橫行佔據半壁江山(有點像1999年PC瀏覽器上的各種特效都是所謂牛B閃閃的Java Applet特效,結果突然1年間就全沒了一樣的感覺啊),就足以說明H5技術在移動設備上急需破冰,我想Egret的入局是個好現象,至少觸控做H5不那麼孤獨了,以後有Egret這個小夥伴同行會更有動力。:) 第二,移動設備H5遊戲市場接下來可能是瞬息萬變,也許再過幾個月時間後會發生天翻地覆的變化,讓我們拭目以待吧,誰說不是呢,這不,微信開放JS-SDK!Egret出現在這個市場上,就是為了從技術上加速這個市場的進化速度,讓更多的web開發者有機會更早的發現這裡的新機遇。
一個技術標準,一款引擎牛不牛,最終的確要以其創造的商業價值去為結果判斷。所以Egret團隊很認真,也很努力的想為開發者提供優秀的引擎,並圍繞引擎提供一整套的遊戲創作解決方案。目前來說,圍繞Egret引擎打造的Runtime已經跟小米、騰訊X5、獵豹、百度等展開技術戰略合作也是這個考慮,渠道和應用場景對於HTML5即點即玩類型的H5遊戲的商業價值上意味著什麼,相信從業者都非常明白。但回歸事實,路要一步步走,飯要一口口吃,HTML5遊戲還處在發展的初始階段,因此,我們也不是完全贊同以商業價值衡量HTML5引擎價值的說法,市場大贏,市場上的開發者大贏,才是真的有價值。
Egret引擎不只是為了能盈利,為了能調動行業大量資源,為了能創造商業價值,以及為了有更多商業化的可能而去做事情。當前作為一個引擎技術服務商更重要的是,能夠真的服務到行業的開發者,CP,發行,平台等環節,特別是幫助web遊戲開發者大幅度提升他們製作HTML5遊戲的用戶體驗,大幅度提升他們創作遊戲的工作效率,提升整個行業的競爭力。這就不只是商業價值那麼簡單,Egret注重的,還是讓整個行業能夠健康快速發展。做「最後一公里」的技術公司,應該參透雷軍的「極致專註口碑快」的七字訣,專註地為開發者服務,用心打磨產品,少打嘴炮,合力共贏,一個千億的市場就像大海,到時每個人都可以換著姿勢去任性的游泳,都能享受這個市場帶來的利益,而不應該把時間浪費在對著過去的數據品味所謂的輝煌或苦澀,更不應該在市場剛剛起步時就劃分所謂的勢力範圍,哪些是你的,哪些是我的,在小水潭裡打水仗,圖樣圖森破,心中格局太小。
成熟的引擎,不僅僅會盈利,更會推動乃至催生一個成熟的行業,我在白鷺Egret做事有這樣的考慮,相信王哲同學也有這樣的覺悟。---------------------------------2014年7月14日分割線------------------------------------Egret Engine是一款使用TypeScript語言構建的開源免費的移動遊戲引擎。Egret的核心定位是開放,高效,優雅。通過它,你可以快速地創建HTML5類型的移動遊戲,也可以將遊戲項目編譯輸出成為目標移動平台的原生遊戲應用。http://egret-labs.org做大型遊戲我覺得看下Cocos2D-X的html5分支吧,2D框架里論架構應該是最成熟的,不過是從Obj-C/C++ port過來的,不知道在html5端表現如何iOS上有不少用Cocos2D/Cocos2D-x做的高營收遊戲。
我比較懶,直接貼數據吧。可能得罪人,不過無所謂了,事實殘酷。
以上數據是12月17日手機Qzone玩吧裡面html5遊戲所用的引擎情況,第一列是引擎名字,第二列遊戲數量,第三列遊戲佔比。我們cocos2d-js不是做得最好的,因為佔比第一的是直接用DOM方式開發,canvas路線的兄弟們不要自作多情了。H5遊戲有無數小渠道和小平台,但我的衡量標準僅以「能夠真正盈利「的手Q玩吧為標準。一個技術標準、一個遊戲引擎牛或不牛,最後還是以技術所創造的商業價值(以RMB為單位)為結果的。
似乎這兩個比較受推崇
http://easeljs.com/http://www.melonjs.org/答案來源:
http://stackoverflow.com/questions/7078875/suggest-a-good-free-open-source-html5js-gaming-framework-engineP.S. 個人感覺這種問題在Stackoverflow上搜索會比較靠譜,除非真的會有國內的開源庫做得比國外還好、卻又沒得到推廣的,或者是你想找的其實是個收費的引擎/框架。我的這篇文章 可能是你想看的。。。
國內開源html5遊戲引擎全收錄
遊戲開發這潭水太深,英文水平太差,不敢看國外的,
而且這幾年國內技術水平也挺高了不少,特別是JS方面。(我個人感覺)最近看了幾個國產的js遊戲引擎,有點想開發個遊戲玩玩,
畢竟搞編程這麼多年,開發過各種類型的程序,就是沒搞過遊戲,人生是不完整的。。。就先收錄一下我所知道的國產開源h5遊戲引擎吧。
cocos2d-js
Cocos引擎中文官網egret
Egret | 開源、免費、跨平台Sirius2D
Sirius2D-HTML5 Game Enginelufylegend.js
lufy"s legend
鑒於我對遊戲行業的無知,其實很糾結要不要每個引擎寫點評論,
想想可能會有更無知的人來看我的文章,要不就隨便寫寫吧。cocos2d 應該是IOS平台最火的遊戲引擎之一,保險起見加個『之一』總是沒有錯了哈。
而cocos2d-js則是官方新推出不久的JS版本,之前還有個cocos2d-html5,也不知道為什麼又推出cocos2d-js,有什麼區別呢?還有c++版本之類的,萬一你以後要改其它編程語言,還可以繼續使用cocos2d。大公司,好像要上市,團隊作品,文檔很全。開發完可以轉換成原生應用,打包之後你的遊戲也就和html5沒什麼關係了,調用的都是高級介面,牛逼閃閃。egret 最近也火到不行,自從出了那個圍住神經貓之後……
雖是新團隊,但也是企業級產品,據說團隊都是來自各界精英,大部分是從Flash陣營轉過來的。用的是typescript作為開發語言,而且和cocos2d-js一樣 也可以轉換成原生應用。生命力很旺盛,假以時日必成大器。還有跟騰訊X5瀏覽器合作,恐怕會是微信遊戲開發不二之選。不過看過一些用egret開發的案例,感覺有點Low,也許是圍住神經貓給人留下的第一印象吧。比起egret,Sirius2D 展示的一些案例,效果都杠杠的,
但是對於他們團隊的了解並不是很多,也沒有像egret那樣搞在線培訓,我個人對這引擎還是挺有好感的,但就是不知道它明天會不會死,今天還一度打不開官網…… 拜託也努力一點好嗎?
lufylegend 應該是《HTML5 Canvas遊戲開發實戰》作者開發的,
這個感覺倒是挺努力的,但是Canvas怎麼拼得過WebGL。。。另外:
cocos2d egret 都是同時支持WebGL和Canvas的,Sirius2D只支持WebGL,寫完感覺沒什麼信心發表啊,對於以上言論的準確性並不是很有把握,
完全憑印象寫的,懶得去核實。以下內容轉自開源中國社區,推薦!
選擇H5遊戲引擎的思考維度
1、開發語言的支持2、2D、3D、VR的支持3、性能4、引擎的應用廣度5、設計理念6、工作流支持力度7、商業化成熟案例8、學習資源與技術支持能力首先,我們要知道,當前主流的遊戲引擎有哪些。由於H5引擎有很多,筆者在這裡進行了精心的篩選,過濾掉不支持webGL的引擎,以及封裝了第三方渲染內核的JS框架,和不能直接在瀏覽器中運行的JS引擎。
為什麼要過濾掉這幾種呢,首先,沒有自己的渲染內核,僅僅是基於第三方的內核作的API封裝,筆者很擔心可持續的性能優化和維護能力。另外,不能在瀏覽器中直接運行的JS引擎,將限制H5遊戲跨平台的交互能力。還有, 筆者非常看好webGL模式,認為webGL模式才是H5引擎的未來。原因有幾點:
第一、性能,webGL模式遠超Canvas數倍。DOM模式就不適合用於真正的遊戲開發,更不用提。
第二、3D方向,webGL模式理論上可以製作2D和3D遊戲,Canvas和DOM模式下只能製作2D遊戲。第三、普及率,webGL的普及率已經非常高了,尤其是支持webGL的騰訊TBS-Blink內核已在4月19日發布,並逐步在微信、QQ空間、QQ瀏覽器、手機QQ等APP中採用靜默安裝方式全面升級。這個普及率在國內帶來的影響,;你懂的……
1、選擇H5遊戲開發語言
擁有廣泛開發者的H5遊戲開發語言共有三種,分別為Flash AS3、TypeScript、JavaScript。其中Flash AS3、TypeScript均屬於面向對象的高級腳本語言,通過編譯器將原項目代碼編譯成JavaScript代碼文件運行於瀏覽器之中,面向對象的高級語言無論是項目開發管理,還是項目開發的工具環境的成熟度都明顯優於JavaScript腳本語言,尤其是中大型項目方面,AS3等高級語言的效率會更高。
從上圖看出,支持JavaScript語言的引擎更多,由於AS3語言的編譯器為Layabox引擎推出的,因此採用AS3作為開發語言的僅有Layabox引擎。筆者建議在開發中大型遊戲項目的時候,採用TypeScript或者是Flash AS3語言進行開發。如果是小型遊戲,任選其一即可。
2、引擎的未來延續能力
選擇一個引擎,並不是簡單的認為,滿足眼前夠用就可以了,引擎的未來延續能力也是很重要的,這個項目是2D,下個項目想開發3D,如果引擎不支持怎麼辦?去換個引擎?如果VR的機會來了,再想發布VR版本,這個引擎不支持,需要重新開發嗎?等等問題,作為開發者儘可能要提前想好。
通過上圖,可以看出,即便是在支持webGL的H5引擎里,有隻面向2D遊戲的,也有隻面向3D遊戲的,同時支持2D、3D、VR的H5引擎,從目前看只有Layabox與Egret引擎。
3、性能是核心需求
性能是H5遊戲面臨的核心門檻,也是很多H5遊戲不被專業玩家認可的重要原因之一。遊戲卡頓,不流暢,這樣的產品體驗很難在激烈競爭中生存下來。
H5產業早期的普及階段即將過去,遊戲品質在迅速提高,品質中包括精細的美術和炫酷的動畫等。在複雜的遊戲項目面前,上述種種元素,其流暢體驗度對遊戲引擎是極大的考驗。所以選擇性能優秀的引擎是保證品質的最重要基礎,一定要謹慎。
在遊戲項目研發開始時,一定要先對複雜的模塊做DEMO測試,特別是帶背景滾動的遊戲。比如橫屏捲軸遊戲,對幀數穩定性要求極高,如果滿足不了性能上的需求,可能會帶來眩暈、眼花、疲倦等不良體驗。
在webGL的2D渲染性能方面,pixi.js的性能處於當前的頂級。在webGL的3D渲染性能方面,Three.js非常優秀。在runtime方面Cocos2d-js也有著原生級的表現,經過對比,筆者認為Layabox性能的綜合實力最強,在各個渲染領域都保持在HTML5引擎的頂級水平。當然,上圖僅作為參考,對於任何號稱某個引擎性能最牛的論調,一定要親自進行性能DEMO的測試對比,而不要輕易採信。
由於性能是遊戲最核心的需求,筆者這裡再多說一句,大型項目在系統複雜度、UI複雜度、動畫顯示數量和種類等方面與小型遊戲項目完全不在一個量級。會涉及到比小遊戲更複雜的性能優化、內存管理、資源管理等需求,如果選擇了小馬拉大車的低性能引擎,項目夭折可能性非常大,除非最後項目開發者花大量時間自己優化引擎。所以性能差一點,就會導致結果差很多,不可主觀想像。
4、與引擎的應用廣度
隨著H5遊戲品質提升,在其他領域也具備一定的競爭力和價值,一次開發可發行各個領域版本,已成為日漸明確的需求,這裡面包括發行原生APP手游和PC的flash頁游需求,大統一的引擎時代即將來領。目前最火爆的H5遊戲《傳奇世界H5》據說有40%的收入來自PC網頁。
發布PC頁游時,由於PC瀏覽器目前對HTML5兼容性不足70%,用戶損耗很大,頁游聯運平台可能會拒絕或放量很少,只有採用能同時發布Flash版本的引擎,才能解決這個問題。
5、設計理念與定位
設計理念是個比較大的話題,也是個很重要的引擎選擇因素,比如引擎是要專註移動端,還是要面向全平台多端遊戲市場。是注重性能,還是注重工具鏈等等。深入了解不同引擎的理念與定位,才能更好的與遊戲產品進行結合。
上圖內容僅作參考,詳情建議去各引擎官網深入了解。
6、工作流支持力度
作為商業級開源引擎,工具鏈的提供與支持也是一種選擇考量要素,比如UI編輯器、粒子編輯器、骨骼編輯器、場景編輯器等等,如果引擎方直接提供或支持,那麼將會較大的提升研發效率。
本文中提到的7個引擎,只有Egret、Layabox、Cocos2d-JS這三個引擎,在工具鏈方面提供足夠全面的支撐。7、是否有成熟的商業案例
怎麼證明引擎是成熟的?一定要有成熟的商業案例,一般引擎的官網上都會有遊戲案例介紹,我們在選擇引擎之前要進行深入體驗,包括:商業案例的數量、商業案例的種類、穩定性、流暢度(要在低端機里體驗)、項目複雜度、項目相似度等。如果有一些大型成功案例背書會相對安全可靠些。
從目前的行業案例來看,Layabox引擎的MMORPG《醉西遊》、重度動作遊戲《獵刃2》、大型模擬經營遊戲《夢幻家園》等無疑是H5引擎技術的最高水準代表作。但是從卡牌、掛機等類型的付費遊戲總體數量來看,Egret引擎明顯佔優,充分說明該引擎的市場宣傳力度更勝一籌。8、學習資源與技術支持能力
能提供什麼樣的學習資源,以及技術支持,對於開發者也是重要因素,如果你是技術大牛,只想使用輕量的第三方渲染內核。那麼2D遊戲,pixi.js無疑是首選。3D遊戲,筆者推薦Three.js。但是這兩種引擎的學習資料都比較稀少。筆者認為學習資料的完善,以及在學習過程中的技術支持力度,將會很大的幫助你解決引擎使用中的問題。所以,API完善,DEMO完善,文檔完善,社區的響應速度,交流氛圍,以及QQ技術支持等,都可以作為你選擇引擎的因素考量之一。
9、頁游移植產品的引擎選擇
目前像《醉西遊》等優秀H5產品是Flash頁游或手游移植而成,移植類的產品在選用引擎時要注意,代碼是否可以直接移植?如果可以,那將節省大量的開發成本。比如Flash AS3開發的2D或3D頁游或手游,可以把邏輯與演算法代碼直接拷貝移植到Layabox引擎項目中,開發速度提高數倍。
寫在最後:最後提醒一下,千萬不要相信某些引擎的單方宣傳,一定要花一點時間去研究實踐,親自製作DEMO去作一作對比,動手體驗到的才是真理。
針對DEMO測試筆者有幾點建議:
1、採用一個複雜的UI,特別是複雜列表,比如說沒有分頁的背包列表,背包里放上不同的道具圖片,測試滑動時的流暢度,這塊比較考驗性能,元素越複雜,數據越多,尤其能對比出來性能上的差異。
2、包含最複雜戰鬥部分,不要寫戰鬥邏輯代碼,不然會花的時間太長,只需要把戰鬥相關的動畫和複雜的元素放在場景中模擬即可,因為H5遊戲性能瓶頸通常在於畫面的顯示。
3、 測試主要目的是看項目在引擎中性能,這是最至關重要的,所以,硬體上,我們要選擇低端安卓手機(比如紅米)進行測試。軟體環境建議使用微信環境測試,首先,因為微信公眾號是H5的主要渠道之一,其次,微信當前的H5性能低於chrome瀏覽器,在惡劣的環境下更能測試引擎的優劣。
最近比較火的是LayaBox釀心打造的LayaAir引擎,性能卓越,建議使用前先自己實測一下LayaAir特點
- 極致性能
LayaAir優先使用webgl渲染,如果webgl不可用,自動無縫轉為canvas渲染,引擎設計過程中處處以性能為優先原則,LayaAir是為裸跑而設計的HTML5引擎。
- 輕量易用
LayaAir API設計上追求精簡,簡單易用,上手容易,引擎本身非常注意自身大小,是目前同等功能最小的HTML5引擎。
- 支持多語言開發
LayaAir同時支持ActionScript3、TypeScript、JavaScript三種語言開發HTML5
- 功能齊全
同時支持2D,3D,VR、時間軸動畫,緩動、UI系統、粒子動畫、骨骼動畫、物理系統等
- 提供可視化輔助開發及工具流
LayaAirIDE提供代碼開發工具及可視化編輯器,清晰的工作流,讓美術,策劃,程序緊密配合,提高開發效率
- 開源免費
引擎全部開源並託管到github,並且全部免費使用,包括商用
當前功能
- Webgl渲染
- Canvas渲染
- 矢量圖
- 圖集支持
- 載入管理器
- HTML富文本
- 點陣圖字體
- 遮罩
- 濾鏡
- 時間軸動畫
- UI
- 粒子
- 骨骼
- 物理系統
- 可視化IDE
- 3D
- VR
推薦LayaAir,絕對是頂級引擎,性能超贊,IDE好使,支持2d、3d、VR,能開發超大遊戲,forgame的醉西遊,騰訊的QQ農場,樂動卓越的浪漫h5這些大作就是用它開發的。 LayaAir是目前市面上性能最優秀的H5引擎。
lufylegend不錯。http://lufylegend.com/lufylegend
Phaser - Desktop and Mobile HTML5 game framework 個人覺得 Phaser 框架還不錯, Coffeescript + Phaser 挺適合寫手機遊戲的, 用 HTML5 deployment platform cocoonjs 來打包應用, 我正在嘗試這個方案. 根據 lynda.com 的教學例子, 我嘗試用 coffeescript 和 cake minify 整合在一起重新寫了一下, 有興趣參看我寫的例子 eiffelqiu/bunny-defender · GitHub
雖然我也很喜歡Cocos2d-js,但是我覺得白鷺引擎不至於那麼慘。Cocos2d-js 和白鷺引擎是HTML5 遊戲研發商開發遊戲的首選,自研的引擎位列第三位。Coscos2d-js 先入為主,早在2013 年就推出了相應的遊戲引擎,佔據了較大的時長份額;白鷺引擎後來居上,也搶佔了部分市場。
推薦自己剛學的lufylegend。不需要那麼多複雜的配置,引用js文件即可。仿ActionScript語法。性能優秀。中文API齊全。也有英語版和日文版。
說到快速上手,還沒有比Hola Studio(http://studio.holaverse.cn)更快的引擎,中小遊戲想怎麼快怎麼快,簡直不能更爽。
現在手機上的H5還存在性能不足的問題,因此慎用大型框架,我自己測試過,用自己封裝的動畫類,和cocos2d-js、白鷺的渲染相同的精靈動畫(14幀)200個(安卓微信下測試),cocos2d和白鷺大概都在30幀左右,我自己寫的有45幀左右,渲染400個的話,我的有28幀左右,後兩個20幀左右,所以特別在乎速度的情況下,還是用盡量原生api寫吧,性能有保障
http://www.appmobi.com/?q=node/158介紹了幾款框架,但是相關文檔都不夠豐富,是個問題
Phaser - Desktop and Mobile HTML5 game framework 除了Egret,Phaser也挺好玩的。
太多了,建議找一個學習就好
能不能先用unity3d編譯成flash,在用flash編譯成html5?
lufylegend好像比較簡單易用
Egret不論在輕度還是中度遊戲都能實現很好的性能了,除卻神經貓,愚公移山,後宮穿越這種類型,重度案例也將面世。
看看這個: http://jawsjs.com/
three.js適合創建3D遊戲,如果是2D推薦可以試試CreateJS。CreateJS由Adobe官方贊助,提供了將Flash轉換為HTML5的工具包,類庫之間的設計非常獨立,且大部分的API是基於Flash的API模仿實現的,非常適合原Flash開發者學習。
行業初萌,百廢待興。只有共同努力,才能改變今天,直至明天的彼岸。
不管是企業(cocos2d-js或Egret)還是個人(lufylegend)都是在為行業和開發者做推動,區別是有的企業可能是藉助了自身前期積累的優勢,有的企業是剛起步但團隊以此為使命並聚集了行業精英來為此奮鬥,但無論如何,相信只要以持續為開發者服務,幫助開發者或手游CP架接渠道與用戶,達到雙贏而建的生態圈,一定是健康持續的生態。
期待上面提到的引擎都能持續的出優質的商業產品。推薦閱讀:
※怎樣以簡單易懂方式向普通人解釋 HTML5 對 HTML 技術的改進?
※JS動畫比CSS3動畫性能誰更好?
※學習路途迷茫,請各位前端大佬幫忙制定學習路線,我該如何入坑?
※input type="submit" 和"button"有什麼區別?
TAG:HTML5 |