HTML5游戲引擎(一)-egret引擎簡(jiǎn)介——一個(gè)開(kāi)源免費(fèi)的游戲框架
為什么
- 游戲行業(yè)發(fā)展迅速, 給程序員提供了大量就業(yè) (斗魚(yú), 微派, 騰訊, 藍(lán)月, 網(wǎng)易 等等)
- 游戲開(kāi)發(fā)薪資普遍比較高 (王者榮耀 , 藍(lán)月)
- 游戲已經(jīng)普遍被大眾所認(rèn)可,并且發(fā)展成一種競(jìng)技體育
學(xué)習(xí)目標(biāo)
- 重點(diǎn)學(xué)習(xí)Egret
- Typescrit 語(yǔ)法學(xué)習(xí)
- 一筆帶過(guò)Cocos2d-x
Egret跨平臺(tái),入手容易,性能較好,更新頻繁,輔助開(kāi)發(fā)工具較多,團(tuán)隊(duì)合作更加得心應(yīng)手。
Cocos2d-x 最開(kāi)始的時(shí)候主打跨平臺(tái)使用C++開(kāi)發(fā)較多, 后來(lái)才兼容的js。雖然發(fā)展的時(shí)間很長(zhǎng),但是BUG偏多,性能不如Egret。
歷史總是向前發(fā)展的,cocos2D 和 Egret就好比angular1 和 React,我們總是選擇思想更先進(jìn),社區(qū)更繁榮的框架。
第一章 Egret簡(jiǎn)介
何為HTML5游戲?
仿CF槍?xiě)?zhàn)h5網(wǎng)頁(yè)游戲——http://localwar.xidayun.com/
技術(shù)角度
從早期的像素的游戲( 俄羅斯方塊 ),到小霸王游戲機(jī)(魂斗羅),到2D游戲 ( 傳奇, DNF, 冒險(xiǎn)島, LOL ),3D游戲 (CF, 吃雞)。玩家越來(lái)越被精美的畫(huà)面,精美的特效所吸引。
傳統(tǒng)的游戲絕大多數(shù)使用C++編寫(xiě)完成,借助GPU來(lái)提升游戲畫(huà)面的品質(zhì)和渲染性能。很多游戲都會(huì)依賴(lài)于游戲引擎開(kāi)發(fā)。
- Creation引擎,代表作:《上古卷軸5:天際》和《輻射》
- Unreal Engine(虛幻引擎),代表作:《戰(zhàn)爭(zhēng)機(jī)器》,《絕地求生》等等
- Frostbite Engine(寒霜引擎),代表作:《榮譽(yù)勛章》和《戰(zhàn)地》。
這些游戲都運(yùn)行在各自的平臺(tái)上,比如: ps4, switch, windows PC等等。
而HTML5可以讓游戲運(yùn)行在瀏覽器。
特點(diǎn):
- 跨平臺(tái) (pc, 安卓, ios)
- 點(diǎn)開(kāi)即玩,適合小快靈的游戲 ( 跳一跳, 斗地主, 麻將 等 )
- 畫(huà)質(zhì)和體驗(yàn)不及傳統(tǒng)游戲(性能, 加載速度, 畫(huà)質(zhì))
非技術(shù)角度
傳統(tǒng)游戲需要exe文件進(jìn)行解壓安裝,或者 買(mǎi)光盤(pán)進(jìn)行游戲。
但是html5游戲,你只需要得到一個(gè)URL地址就可以愉快的進(jìn)行游戲了。
為什么需要游戲引擎?
幾年前,很多前端開(kāi)發(fā)者嘗試使用Canvas來(lái)制作游戲,甚至有的開(kāi)發(fā)者使用DIV來(lái)開(kāi)發(fā)游戲,體驗(yàn)可想而知。
因?yàn)樵诋?dāng)時(shí)并沒(méi)有一款真正意義上的游戲引擎,很多的所謂的"HTML5游戲引擎", 實(shí)際上僅僅是一個(gè)渲染框架。
真正的游戲需要考慮很多問(wèn)題:
- 渲染
- 網(wǎng)絡(luò) (延遲)
- 音頻
- 碰撞檢測(cè)
而Egret提供了大量的工具幫我們解決這些問(wèn)題。
Egret介紹
egret官網(wǎng)——https://www.egret.com/
cocos官網(wǎng)——https://www.cocos.com/
Egret引擎是一個(gè)開(kāi)源免費(fèi)的游戲框架,用于構(gòu)建二維游戲、演示程序和其他圖形界面交互應(yīng)用等。Egret使用TypeScript腳本語(yǔ)言開(kāi)發(fā)。當(dāng)游戲完成最終的打包后,可以將程序轉(zhuǎn)換為HTML5游戲。實(shí)現(xiàn)跨平臺(tái)特性。
Egret不僅僅是一個(gè)基于HTML5技術(shù)的游戲引擎,我們的產(chǎn)品線(xiàn)中除了Egret引擎還提供了很多輔助游戲開(kāi)發(fā)的工具。**準(zhǔn)確的來(lái)說(shuō),Egret是一套游戲開(kāi)發(fā)的解決方案。**你可以使用Egret引擎來(lái)幫助你開(kāi)發(fā)HTML5游戲,并運(yùn)行在手機(jī)和PC端的瀏覽器中,同時(shí)也你可以使用Egret提供的相關(guān)工具搭建你自己的游戲開(kāi)發(fā)工作流。
開(kāi)源免費(fèi)
基于BSD開(kāi)源協(xié)議的Egret引擎,可以自由的使用Egret來(lái)創(chuàng)作自己的游戲。
1.BSD開(kāi)源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議?;旧鲜褂谜呖梢浴睘樗麨椤保梢宰杂?br> 的使用,修改源代碼,也可以將修改后的代碼作為開(kāi)源或者專(zhuān)有軟件再發(fā)布。
2.Apache Licence是著名的非盈利開(kāi)源組織Apache采用的協(xié)議。該協(xié)議和BSD類(lèi)似,同樣
鼓勵(lì)代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開(kāi)源或商業(yè)軟件)。需要滿(mǎn)足
的條件也和BSD類(lèi)似。3.GPL協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用(”使用”指類(lèi)庫(kù)引用,修改后的代碼或者衍生代
碼)GPL協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開(kāi)源和免費(fèi)。(代表: linux)
優(yōu)秀的設(shè)計(jì)思想
Egret的設(shè)計(jì)思想大量借鑒了優(yōu)秀的2D動(dòng)畫(huà)軟件Flash的一些設(shè)計(jì)思想。在引擎的設(shè)計(jì)中,Egret底層使用了彈性跑道模型,顯示列表,臟矩陣,事件模型等技術(shù)。在這些技術(shù)基礎(chǔ)之上,我們封裝了對(duì)用戶(hù)極為友好的API。開(kāi)發(fā)者在開(kāi)發(fā)游戲時(shí),無(wú)需考慮底層渲染邏輯,只關(guān)心游戲邏輯即可。
高效的渲染模塊
在圖形圖像渲染中,Egret完全使用HTML5標(biāo)準(zhǔn)中的canvas技術(shù)。極大程度上保證了使用Egret引擎開(kāi)發(fā)的游戲在各個(gè)瀏覽器上的兼容性。同時(shí),為了給玩家更好的游戲體驗(yàn),我們不僅僅提供了CPU渲染,還提供了性能更為強(qiáng)大的硬件加速渲染模式。該模式無(wú)需開(kāi)發(fā)者自動(dòng)開(kāi)啟,引擎會(huì)根據(jù)當(dāng)前用戶(hù)硬件類(lèi)型智能判斷啟用。
完善的配套工具
Egret引擎的設(shè)計(jì)宗旨始終圍繞在簡(jiǎn)化游戲開(kāi)發(fā)上,用戶(hù)在使用Egret的時(shí)候,能夠體會(huì)到,所有的引擎設(shè)計(jì)全部圍繞游戲開(kāi)發(fā)。同時(shí)Egret提供的配套工具也極大簡(jiǎn)化了游戲開(kāi)發(fā)流程。從游戲的代碼編寫(xiě),UI制作,地圖拼接,關(guān)卡制作到最終游戲上線(xiàn),研發(fā)過(guò)程中都有大量工具支撐。
靈活的工作流
Egret不限制開(kāi)發(fā)工具的使用,我們也為一些優(yōu)秀的第三方工具提供了相關(guān)插件。讓用戶(hù)在不改變開(kāi)發(fā)習(xí)慣的情況下無(wú)縫遷移到Egret。
社區(qū)支持
Egret為用戶(hù)建立了用戶(hù)社區(qū),如果在使用Egret過(guò)程中遇到了哪些問(wèn)題,可以直接在用戶(hù)社區(qū)中得到答案。同時(shí),我們也為用戶(hù)提供了大量文檔手冊(cè),方便用戶(hù)學(xué)習(xí)。
https://bbs.egret.com/portal.php文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-449722.html
功能
Egret繼承了Flash的優(yōu)點(diǎn),同時(shí)更加針對(duì)游戲開(kāi)發(fā),主要包括如下功能:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449722.html
- 顯示列表:清晰、穩(wěn)健、高效的視覺(jué)抽象結(jié)構(gòu)
- 精靈:一種輕量級(jí)顯示容器
- 事件機(jī)制:提供了一套生成和處理事件消息的標(biāo)準(zhǔn)方法
- 紋理集合:將大量圖片匯集為一張紋理圖進(jìn)行處理
- 矢量繪圖:封裝了方便簡(jiǎn)單的矢量繪圖功能
- 網(wǎng)絡(luò)加載:封裝了常用的網(wǎng)絡(luò)通訊協(xié)議
- 位圖字體:可通過(guò)位圖字體方式顯示文本
- 性能監(jiān)控:可在游戲中快速開(kāi)啟性能監(jiān)控面板
- 反射:對(duì)TypeScript增加了反射機(jī)制,方便模塊化開(kāi)發(fā)
- XML處理:提供標(biāo)準(zhǔn)的XML格式解析生成功能
- 骨骼動(dòng)畫(huà):支持業(yè)內(nèi)最優(yōu)骨骼動(dòng)畫(huà)解決方案DragonBones
- 資源加載:提供了整套資源加載方案,優(yōu)化網(wǎng)絡(luò)加載功能
- EUI:提供大量組件,可快速開(kāi)發(fā)游戲中的UI控件
Script增加了反射機(jī)制,方便模塊化開(kāi)發(fā) - XML處理:提供標(biāo)準(zhǔn)的XML格式解析生成功能
- 骨骼動(dòng)畫(huà):支持業(yè)內(nèi)最優(yōu)骨骼動(dòng)畫(huà)解決方案DragonBones
- 資源加載:提供了整套資源加載方案,優(yōu)化網(wǎng)絡(luò)加載功能
- EUI:提供大量組件,可快速開(kāi)發(fā)游戲中的UI控件
到了這里,關(guān)于HTML5游戲引擎(一)-egret引擎簡(jiǎn)介——一個(gè)開(kāi)源免費(fèi)的游戲框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!