Egret 4.1.6 和 LayaBox(LayaAir 2.0) 的 易用性 對比
在2D方面,我剛剛入門。還沒用上原生、資源管理等高大上功能。
就2D小功能、編譯方面,EGRET和LAYABOX(LAYAAIR)我的實踐體會如下
typescript用法
EGRET WING 4.1.6 | LAYAAIR 1.7.21 | LAYAAIR 2.0.0.beta4 | |
console.log | 識別任何檔案和行號,自動帶上輸出檔案、行號 ●勝出● |
不明 | 在右邊有一個小小的ts或js可點選行號。 輸出內容裡面的檔案行號不能智慧識別。 這個和原生的vscode行為一樣。 |
編譯器 | typescript的tsc編譯器編譯 js檔案分散 名稱空間,mudule都可以暴露在全域性空間中 可以a.b.c方式直接使用 ●勝出● |
同egret 但是,編譯成功的過程沒有任何提示顯示 因為這個引擎是action script開發為主的,估計typescript方式開發是臨時工拼湊的工具。 |
(●勝出●) gulp+browserify+tsify 必須import, export,向javascript es6看齊 寫程式碼很煩,需要不斷import 不支援關鍵字namespace, 支援關鍵字module 因為javascript es6 把檔案看作module,所以typescript的顯式namespace module 要說拜拜了 編譯過程有提示顯示了 |
api風格 | api不容易用,非同步呼叫方式,非同步思維滿天飛 事件函式基本無封裝 |
api容易用,可以使用同步思維(當然,圖片還是非同步顯示的) 一些事件功能函式易用,有些已經二次封裝 ●勝出● |
同LAYA1.7.21 ●勝出● |
IDE執行速度 | 較快●勝出● | 較慢 | 較慢 |
論壇友好度 | 沒有敵對情緒 ●勝出● |
有一些些敵對情緒,常常說我引擎沒收你錢 | 同laya1.7 |
引擎賺錢嗎 | 新三板上市(基本相當於沒上),每年虧2000萬 現在花投資人和新三板的錢 ●勝出● |
還沒上市 現在花投資人的錢 |
同laya1.7 |
流行程度 | 更流行 | 普通流行 | 同laya1.7 |
引擎成員實力 | 通過api來看,引擎開發者沒有咋開發過遊戲,api不是特別好用 這有點像當年如日中天的cocos,開發者也沒有開發過遊戲。 |
●勝出● 通過api來看,引擎開發者開發過遊戲,api相對好用 但是引擎開發者應該大實力在action script上 可以編譯flash,現在2018.11月了,flash需求在PC頁遊中尚有一半市場 考慮手機是PC流量的2倍,使用者受眾影響多了20% |
同laya1.7 ●勝出● |
3D完善度 | DEMO比LAYA的好看 | 騰訊背書,應該是用ActionScript開發了一款檯球遊戲 在微信小程式裡面有。 ●勝出● |
騰訊背書,應該是用ActionScript開發了一款檯球遊戲 ●勝出● |
引擎容量大小 | 容量比laya小20%左右 ●勝出● |
較大 | 較大 |
引擎速度 | 不確定優劣 | laya宣傳說自己效能優 laya有cacheAs函式,但是egret也有類似的cacheAsBitmap 函式, |
同1.7 |
2D物理引擎 | 不是box2d, 叫p2 | 可能是沒有整合物理引擎 | box2d ●勝出● |
網站速度 | 較快 ●勝出● |
不那麼快 | 不那麼快 |
書籍 | 有egret的出版書籍 ●勝出● |
無出版書籍 | 無出版書籍 |
網課流行度 | 強 ●勝出● |
弱 視訊倒是官方出品。 腦殘的竟然在騰訊課堂上收費才給看 兩個解釋: 1)laya要靠培訓市場生錢 2)搞視訊的人沒在laya拿工資,是第三方,所以收錢彌補損失 |
同laya1.7 |
IDE技術 | VSCODE,深度定製,已經不能裝任何外掛了 | VSCODE,淺度定製,還能裝某些外掛 ●勝出● |
同laya1.7 ●勝出● |
3D支援 | 不成熟,論壇相關內容沉寂 | 成熟,論壇相關內容活躍 | 成熟,論壇相關內容活躍 |
如何選擇?
API易用性:laya勝出
除錯易用性:console.log智慧識別檔案,行號, egret勝出。laya勉強能用,如果要用sourcemap+stack功能,laya不行了。
程式碼組織方面:import export 模組問題,全域性名稱空間(egret, laya 1.7)的明顯好用。兩個引擎暴露出來的介面也都是會汙染全域性環境的,可以直接引用的。C#和Java的名稱空間也是全域性可用的。所以這個laya2.0的做法,就是著了es6那班老學究的魔,加上IDE開發人員只想著個人人生前途,不想公司前途,用了這個內部模組import方式,噁心到家。理想的是輸出一個js加快裝載,但是支援全域性名稱空間。
所以,現在最好的方案是把egret的api封裝成同步程式設計模式是最徹底的解決方法。但這是不可能的事情。所以這個答案沒有答案。
將就著選吧。
如果用了action script,那麼服務端不能採用同一套typescript技術,現在大部分公司還是沒這麼強的實力,配備這麼多人大眼瞪小眼。
咱不說騰訊,人家那服務端說不準是C++的,有錢任性,何況有好多隻會C++的不願和前端js競爭飯碗,但是二哥網易也是在客戶端服務端方面都是向python一條龍靠齊