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