1. 程式人生 > >Egret 4.1.6 和 LayaBox(LayaAir 2.0) 的 易用性 對比

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
js合成單一檔案,沒有全域性空間汙染

必須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一條龍靠齊