手把手教你架构3d游戏引擎pdf_白鹭引擎团队即将发布 Egret Pro,并公布后续路线图...
各位開(kāi)發(fā)者好。
春節(jié)前,白鷺引擎團(tuán)隊(duì)發(fā)布了 Egret3D 1.4,引入了大量新特性。上周,白鷺引擎團(tuán)隊(duì)發(fā)布了 5.2.14 版本,修復(fù)了多個(gè)白鷺引擎2D渲染器相關(guān)的 BUG,接下來(lái)我們會(huì)在下周繼續(xù)發(fā)布 5.2.15 版本提升2D引擎穩(wěn)定性。
除此之外,近三個(gè)月以來(lái)白鷺引擎團(tuán)隊(duì)還對(duì) 3D編輯器(開(kāi)發(fā)代號(hào):Egret Paper)先后進(jìn)行了邀請(qǐng)內(nèi)測(cè)和公開(kāi)測(cè)試。在這三個(gè)月中感謝諸位開(kāi)發(fā)者的反饋,白鷺引擎的3D編輯器即將正式發(fā)布,并正式命名為 Egret Pro。
Egret Pro 不是一個(gè)新的引擎,而是一套優(yōu)化后的開(kāi)發(fā)工作流,他致力于幫助開(kāi)發(fā)者提升開(kāi)發(fā)效率,而不是提升運(yùn)行效率。
上圖為 EgretPro 的架構(gòu)以及與 Egret 渲染器的關(guān)系,通過(guò)上圖可以看出,Egret Pro本身不干預(yù)游戲渲染的底層機(jī)制,而是繼續(xù)使用 Egret2D 與 Egret3D 的運(yùn)行時(shí)庫(kù),并專注于通過(guò)這套結(jié)構(gòu)幫助開(kāi)發(fā)者提升開(kāi)發(fā)效率。接下來(lái) Egret Pro 將作為開(kāi)發(fā)者入口,包容 Egret2D 與 Egret3D ,形成一套完整的開(kāi)發(fā)工作流。
Egret Pro 目前為完全免費(fèi)產(chǎn)品,但是我們后續(xù)會(huì)在其中添加部分收費(fèi)功能。目前我們提供的免費(fèi)功能如下:
一、基于組件實(shí)體系統(tǒng)架構(gòu)的開(kāi)發(fā)工作流
Egret Pro 中使用了組件實(shí)體系統(tǒng)架構(gòu),這種架構(gòu)的核心設(shè)計(jì)思想在于“數(shù)據(jù)驅(qū)動(dòng)開(kāi)發(fā)”,通過(guò)各種方式,游戲業(yè)務(wù)邏輯被分解為了不同的組件,并可以通過(guò)編輯器對(duì)自定義組件進(jìn)行可視化編輯與預(yù)覽。
通過(guò)上圖可以看出,開(kāi)發(fā)者只需要在游戲邏輯中對(duì)組件定義裝飾器,就可以實(shí)現(xiàn)在編輯器的可視化編輯,通過(guò)這種方式,可以大幅簡(jiǎn)化開(kāi)發(fā)者在游戲的細(xì)節(jié)數(shù)值、特別是打擊感方面的工作方式,提升開(kāi)發(fā)效率。
二、增量編譯速度提升20倍
Egret Pro 中,我們拋棄了原有的由白鷺引擎團(tuán)隊(duì)定制的 TypeScript 編譯器,而是內(nèi)置了 webpack 作為底層編譯核心。通過(guò)一系列的重構(gòu)調(diào)整,目前經(jīng)過(guò)重度項(xiàng)目實(shí)際檢測(cè),項(xiàng)目的編性能提升了超過(guò)20倍。通過(guò)這些調(diào)整,我們?yōu)殚_(kāi)發(fā)者節(jié)省了大量用于編譯和等待的時(shí)間,進(jìn)而實(shí)現(xiàn)了開(kāi)發(fā)效率的提升。
三、完全支持 npm 生態(tài)
借助于內(nèi)置的 webpack,開(kāi)發(fā)者可以在Egret Pro 中安裝任何支持在瀏覽器中運(yùn)行的 npm 庫(kù),包括并不僅限于:
1、underscore 開(kāi)源 JavaScript 函數(shù)工具集;
2、jQuery 開(kāi)源 DOM 操作庫(kù);
3、axios 開(kāi)源 XHR 封裝庫(kù);
4、socket.io 開(kāi)源客戶端/服務(wù)器通訊協(xié)議;
5、vue 開(kāi)源前端開(kāi)發(fā)框架。
除此之外,由于 Egret Pro 自身也采用 npm 進(jìn)行版本管理和維護(hù),所以開(kāi)發(fā)者可以更方面的使用 Linux 等操作系統(tǒng)將白鷺引擎項(xiàng)目添加您的持續(xù)集成服務(wù)器中(如 Jenkins )。
四、支持更多小游戲平臺(tái)
Egret Pro 目前除了已經(jīng)正式支持的微信小游戲、QQ玩一玩、百度小游戲、Facebook Instant Game之外,我們還支持發(fā)布到頭條小游戲平臺(tái)、快應(yīng)用聯(lián)盟小游戲平臺(tái)(如華為小游戲、小米小游戲、OPPO小游戲、VIVO小游戲等),并在上述平臺(tái)中均有已內(nèi)測(cè)的游戲發(fā)布。但是受限于與一部分合作伙伴的商業(yè)條款,我們暫時(shí)無(wú)法確定在正式對(duì)部分小游戲平臺(tái)提供一鍵發(fā)布以及后續(xù)技術(shù)支持的時(shí)間點(diǎn)。
后續(xù)路線圖
2019.3.1
Egret Pro 0.9 正式發(fā)布,這個(gè)版本我們以 Egret2D 5.3.2 版本與 Egret3D 1.4 版本為默認(rèn)的引擎版本,并優(yōu)化了公測(cè)開(kāi)發(fā)者反饋比較強(qiáng)烈的幾個(gè)問(wèn)題:
1、安裝機(jī)制過(guò)于復(fù)雜,需要安裝 3D 編輯器,Egret 5.3.2 ,paper-cli 才能進(jìn)行開(kāi)發(fā);
2、修改代碼后編譯速度過(guò)慢;
3、編輯模式下(特別是同時(shí)開(kāi)啟編輯模式和瀏覽器預(yù)覽時(shí))占用GPU資源過(guò)高。
我們推薦采用白鷺引擎開(kāi)發(fā)3D游戲以及新立項(xiàng)開(kāi)發(fā)重度2D游戲的團(tuán)隊(duì)使用 Egret Pro。這個(gè)版本的局限性在于,2D游戲開(kāi)發(fā)并沒(méi)有與組件實(shí)體系統(tǒng)進(jìn)行緊密的集成,所以輕度 2D 游戲使用 Egret Pro的投入產(chǎn)出比不是很大,僅能帶來(lái)編譯速度的提升,而沒(méi)有可視化編輯功能,又由于輕度項(xiàng)目自身的編譯速度很快,所以帶來(lái)的開(kāi)發(fā)效率提升有限。
2019.4
Egret Pro 1.0 正式發(fā)布,預(yù)計(jì)更新的功能包括:
1、將引擎 2D / 3D 的更新內(nèi)容同步至 Egret Pro,主要是 Egret 2D 的BUG修復(fù)以及3D版本中引入的新特性;
2、在盡量不修改 API 的前提下在 Egret2D 項(xiàng)目中引用組件實(shí)體系統(tǒng);
3、可視化編輯器支持編輯2D場(chǎng)景。
除了 EgretPro 之外,我們還重點(diǎn)優(yōu)化現(xiàn)有 2D 引擎的如下功能:
1、優(yōu)化 EUI 皮膚文件的編譯體積,并集中修復(fù) EUI 模塊的一些問(wèn)題;
2、優(yōu)化 AssetsManager 的加載機(jī)制,完善弱網(wǎng)絡(luò)環(huán)境下的異常捕獲和重試機(jī)制;
3、提升 Egret Native 的運(yùn)行性能和穩(wěn)定性;
4、將 Protobuf 庫(kù)作為白鷺引擎的核心擴(kuò)展庫(kù),并提供針對(duì)重度游戲有針對(duì)性的進(jìn)行編譯體積優(yōu)化。
2019.5
推出基于重度游戲開(kāi)發(fā)解決方案,此方案的大部分功能目前均以開(kāi)發(fā)完畢,并已經(jīng)應(yīng)用在尚未正式上線的游戲中。引擎團(tuán)隊(duì)會(huì)確保在該游戲正式發(fā)布后,將其提取為一套解決方案,以供重度游戲開(kāi)發(fā)團(tuán)隊(duì)使用,該解決方案新特性如下:
1、大幅降低游戲的 JavaScript 運(yùn)行時(shí)內(nèi)存,重度游戲初始內(nèi)存從 50M 降低至 20M;
2、通過(guò)一套與 EUI 集成的 MVVM 框架,簡(jiǎn)化游戲業(yè)務(wù)邏輯代碼行數(shù),與傳統(tǒng) MVC 架構(gòu)相比,代碼行數(shù)減少一倍以上,BUG率降低兩倍以上,整體開(kāi)發(fā)周期減少30%。(根據(jù)真實(shí)項(xiàng)目采用該方案前后對(duì)比的數(shù)據(jù));
3、提升游戲加載速度,不修改資源尺寸的前提下,游戲加載速度提升25%。
如果您目前有新的重度游戲項(xiàng)目(或者是開(kāi)發(fā)周期在兩個(gè)月以上的“換皮”項(xiàng)目)立項(xiàng),希望提前使用重度游戲開(kāi)發(fā)解決方案,請(qǐng)聯(lián)系白鷺引擎的商務(wù)團(tuán)隊(duì) bd@egret.com,并注明重度游戲開(kāi)發(fā)框架,我們會(huì)根據(jù)您的具體情況為您提供定制化的支持。
結(jié)語(yǔ)
Egret Pro 將在 2019年3月1日面向所有開(kāi)發(fā)者正式發(fā)布,版本發(fā)布后我們會(huì)繼續(xù)對(duì) Egret Pro 以及我們一直維護(hù)的 Egret2D / Egret3D / UI Editor / Egret Launcher 等代碼庫(kù)和工具進(jìn)行持續(xù)迭代更新。
總結(jié)
以上是生活随笔為你收集整理的手把手教你架构3d游戏引擎pdf_白鹭引擎团队即将发布 Egret Pro,并公布后续路线图...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 访问Webservice错误
- 下一篇: Sharepoint 2007 用代码聚