天天看點

Layabox技術講座分享

Layabox技術講座分享

今天有幸聽了Layabox公司技術負責人做的技術宣講,關于LayaAir 2.0。收獲不少,在此記錄一下。

目前Layabox公司主推LayaAir 2.0,不過還是beta版本,演講者也說了,如果是開發3D遊戲,一定要用2.0;如果是開發2D遊戲,可以選擇1.0或者2.0,前者更加穩定,後者功能和性能更強。

2.0中給我印象比較深的幾大特性:元件化、實體引擎更新、場景管理。

先說下元件化。這個功能也是模仿Unity,好處是子產品劃厘清晰,所見即所得。事實上,LayaAir很多方面都在學Unity,特别是IDE和工作流這塊。演講者對Unity的開發效率推崇備至,坦言現在LayaAir與其還有很大差距。Laya甚至做了一個Unity插件,支援将Unity中開發好的shader一鍵導出到LayaAir中。這也可以了解為一種商業政策,吸引更多的Unity開發者轉向LayaAir,或者友善将Unity開發好的手遊移植到H5平台。

實體引擎更新,演講者強調了這是性能提升最大的一塊。這主要得益于對WebAssembly的使用。WebAssembly顧名思義,是在web開發中用到的bytecode。它屏蔽了ts、js等語言的差異,先編譯再解釋執行,進而提升效率。LayaAir把實體碰撞檢測中的大量計算放在WebAssembly中,極大提升了執行效率。

場景管理,也是模仿Unity的一個功能。好處是切換場景時不用手動釋放資源,會自動清理。如果需要跨場景保留的資源,則可以選擇不添加在場景中。

關于as/js/ts語言的選擇,演講者表示,LayaAir現在對as的支援最好;不過as畢竟是停止更新的語言,LayaAir以後對它的支援也會慢慢淡化,直至脫鈎。在js和ts之間,演講者建議選擇ts,因為ts的類型健壯,而且ts編譯成js的過程效率很高。

Laya還提供了一個很有意思的功能:LayaCloud。這是為一些小cp提供的服務端解決方案。具體應用場景:一些簡單的互動遊戲(如IO遊戲)要用到服務端通信,或者幀同步,但是小團隊又沒有時間精力去開發後端架構、部署伺服器,這時就可以使用LayaCloud。它将雲服務和服務端架構做了封裝,暴露出簡單的接口。開發者隻需用node.js寫簡單的邏輯即可,不用關心下面的技術細節。

演講者還為我們示範了用LayaAir做的pbr渲染,一個戰士盾牌帶反光的效果,還不錯。這一點有點出乎我的意料,原以為pbr在H5平台上跑不起來。據他們說,申請了相關專利,用于保證pbr在H5平台的性能。不得不說,Laya在3D這一塊的優勢挺大的,市場佔有率也是遙遙領先其他H5引擎。選擇一款好引擎,對于公司長遠的技術規劃來說也是很重要。

在整個過程中,演講者侃侃而談,說得很實在,對Laya的一些不足也直言不諱。對于我們的提問也是有問必答,熱心交流。相信一個靠譜的負責人帶隊開發的引擎也不會差,這也增加了我們用Laya開發好遊戲的信心。

繼續閱讀