Egret Engine官方版(白鷺引擎)是一款開源免費的遵循HTML5標(biāo)準(zhǔn)的2D、3D引擎,解決了HTML5性能問題及碎片化問題,靈活地滿足開發(fā)者開發(fā)2D或3D游戲的需求,并有著較強的跨平臺運行能力。
多平臺渠道功能一鍵接入
可以快速接入眾多游戲渠道、支付、用戶系統(tǒng)等接入更加輕松。
較高的項目開發(fā)效率
簡潔、易用、高效的API,讓游戲開發(fā)像寫作一樣簡單。完善的中文文檔說明,讓你快速上手。
完整的游戲開發(fā)工作流
從資源配置到代碼編寫、再到調(diào)試發(fā)布,針對每個環(huán)節(jié)提供不同工具幫你完成。
較強的跨平臺支持
完善的2D、3D引擎,忽略平臺差異性,寫一份代碼在任何平臺都可使用。
高速的運行性能
Egret底層針對不同瀏覽器優(yōu)化策略進(jìn)行大量優(yōu)化,讓你的代碼運行計算處于健壯性狀態(tài)。
獨有的臟矩形渲染
內(nèi)置臟矩形算法可幫助你優(yōu)化游戲畫面渲染性能,整體性能提升1倍,項目運行更加流暢
組件化的EUI系統(tǒng)
更好的屏幕適配,功能強大的組件系統(tǒng),更加優(yōu)化的渲染體系,新手易用性更強。
下載本站安裝包,雙擊運行后,跟隨安裝向?qū)ё撸?ensp;稍等片刻即可完成安裝。
安裝引擎
下載Egret Engine。
安裝開發(fā)工具
打開 Egret Launcher,會顯示登錄界面,如下圖。
登陸成功后會顯示 Egret Launcher 主界面。
創(chuàng)建項目
1、點擊菜單 項目 -> 創(chuàng)建項目 來創(chuàng)建項目,如下圖。
也可以選擇 導(dǎo)入項目 來導(dǎo)入已有項目。
2、在彈出的新建項目面板中,設(shè)置項目的基本配置,如下圖。
項目名稱
當(dāng)前項目的名稱,如 HelloWorld。
項目路徑
該項目所存放的文件路徑。
項目類型
該項目的項目類型,如 Egret 游戲項目 , Egret EUI 項目。
引擎版本
當(dāng)前項目所使用的 Egret 的版本。
選擇擴(kuò)展庫
項目中需要使用的系統(tǒng)庫。更多關(guān)于擴(kuò)展庫選擇的介紹可以參考:擴(kuò)展庫簡介
舞臺尺寸
默認(rèn)游戲舞臺的高度與寬度,以像素為單位.
縮放模式
屏幕的適配方式,這里選擇showALL模式。更多關(guān)于縮放模式的介紹可以參考:屏幕適配
旋轉(zhuǎn)方式
屏幕的旋轉(zhuǎn)模式,這里選擇auto模式。更多關(guān)于旋轉(zhuǎn)設(shè)置的介紹可以參考:屏幕適配
點擊 創(chuàng)建 ,創(chuàng)建Hello World項目。
項目可以直接在Egret Launcher 中進(jìn)行打開,管理。
項目結(jié)構(gòu)
在Egret Wing左側(cè),可看到當(dāng)前項目的目錄結(jié)構(gòu):
各文件夾功能說明
.wing:包括 Egret 項目的任務(wù)配置文件和啟動配置文件。
bin-debug:項目調(diào)試時,所產(chǎn)生的文件存放于此目錄。
libs:庫文件,包括 Egret 核心庫和其他擴(kuò)展庫存放于此目錄。
resource:項目資源文件存放于此目錄。
script:項目構(gòu)建和發(fā)布時需要用到的腳本文件存放在此目錄。
src:項目代碼文件存放于此目錄。
template:項目模板文件存放于此目錄。
egretProperties.json:項目的配置文件。具體的配置說明可以參考:EgretProperties說明
index.html:入口文件。具體的配置說明可以參考:入口文件說明
manifest.json:清單文件。
tsconfig.json:typescript 編譯配置文件。
wingProperties.json:Egret Wing 項目配置文件。
運行項目
點擊菜單“項目”->“構(gòu)建”,編譯項目,如下圖。
構(gòu)建完成之后點擊菜單“項目”->“調(diào)試”,運行項目,如下圖。
如何分包加載資源?
關(guān)于微信小游戲中新加入的分包加載 API
微信小游戲增加了分包加載功能(微信 6.6.7 客戶端),運用分包功能,小游戲代碼包總上限可以從之前的 4 M提升至 8 M。開發(fā)者可以根據(jù)游戲品類和場景需要,在合適時機(jī)加載指定包,提升打開速度,優(yōu)化用戶體驗。
微信小游戲之所以提供了分包的策略,最主要的目標(biāo)是希望開發(fā)者將包體積盡可能降低,將首屏加載的壓力分散到游戲邏輯中,保證盡快給玩家一個可以交互的界面,而不是停留在微信小游戲的啟動頁中。為此,微信小游戲本次更新中不僅僅更新了分包加載,也在管理后臺的運維中心提供了加載性能監(jiān)控功能,允許開發(fā)者針對上述數(shù)據(jù)數(shù)據(jù)分析功能,正是希望通過這些數(shù)據(jù)分析能力幫助開發(fā)者更精細(xì)化的優(yōu)化小游戲的加載效率。
因此,將微信的本次更新簡單粗暴的理解為“包體積從4M提升到了8M”是片面的。也很不建議開發(fā)者直接這樣做,因為目前您仍然要兼容微信不存在分包下載的老版本,如果您將您的游戲直接放置了8M的分包,就會在用戶首次啟動時必須加載完8M資源才能跳出啟動頁,這也不是很好的用戶體驗。
為此,白鷺引擎的策略是,引入一個 loading.js 的邏輯,并將其與白鷺引擎的核心代碼(以及最簡化的loading資源)打包為主包,然后在 loading.js 中去動態(tài)下載子包,并在下載過程中借助已經(jīng)加載的白鷺引擎為用戶渲染出 Loading 界面。
之所以將微信分包策略與白鷺引擎采用這種方式結(jié)合,是在效仿頁游的分包機(jī)制。幾乎所有的 Flash 頁游都會至少存在兩個 SWF 文件(可以近似理解為編譯后的代碼包文件),第一個SWF文件只負(fù)責(zé)加載邏輯并保持其體積盡可能小,而真正的業(yè)務(wù)邏輯由于代碼總編譯體積很大,都會放在后續(xù)加載。
最后用一張圖概述:
如何在白鷺引擎中使用分包下載
借助于白鷺引擎 5.1 版引入的新的自定義構(gòu)建管線功能,您無需升級白鷺引擎至最新版本,而只是在構(gòu)建管線中添加一些插件,并調(diào)整少量邏輯就可以完成此改動。
考慮到這項功還沒有經(jīng)過長時間的測試,我們暫時不將該功能集成在引擎里,而是給開發(fā)者提供一個示例項目。開發(fā)者應(yīng)首先在引擎提供的示例項目中將該功能跑通,然后再將其應(yīng)用于您的正式項目。
步驟一:下載示例項目
您可以在 https://github.com/himuil/subPackageDemo 處下載示例項目,該項目可以直接運行看到效果
該項目使用了 Egret 5.2.3 版本,但是您也可以將 egretProperties.json 中的 engineVersion 和 compilerVersion 調(diào)整為您的引擎版本,我們支持 5.1 以上的版本。
步驟二:將該項目移植進(jìn)您的游戲
將 scripts/wxgame/subpackage.ts 拷貝進(jìn)您的項目
修改 config.wxgame.ts,將 ManifestPlugin 替換為 SubPackagePlugin (注意,您需要修改 build 和 publish)
修改 config.wxgame.ts 中的 CleanPlugin,將 subpackage 對應(yīng)的目錄清除
將示例項目的 EgretSubpackageLoading.js 拷貝進(jìn)您的微信小游戲項目
修改微信小游戲項目的 game.json,參考示例項目,引入 subpackages 屬性
修改微信小游戲項目的 game.js,參考示例項目,重點是添加調(diào)用 wx.loadSubPackage 的邏輯
步驟三:高級用法
您可以通過修改 SubPackagePlugin 的參數(shù)和 game.json 的 subpackage 字段配置多個 subpackage
您可以在游戲過程運行中,而不是游戲初始化時加載某個 subpackage,比如您可以在游戲啟動時只加載一個登陸頁面,在用戶登陸之后再加載游戲主邏輯。
每個 subpackage 可以包含多個 js 文件
網(wǎng)友評論