技術(shù)分享 | Yahaha移動端是如何實現(xiàn)內(nèi)嵌Unity引擎的?

來源:Yahaha Studios
作者:Yahaha Studios
時間:2022-02-17
1464
作為一個3D內(nèi)容創(chuàng)作平臺,Yahaha結(jié)合社交、游戲體驗、創(chuàng)作分享于一體,大大降低了3D內(nèi)容創(chuàng)造的門檻。

作為一個3D內(nèi)容創(chuàng)作平臺,Yahaha結(jié)合社交、游戲體驗、創(chuàng)作分享于一體,大大降低了3D內(nèi)容創(chuàng)造的門檻。在Yahaha,創(chuàng)作者們即使不具備專業(yè)的編程知識也能夠輕松創(chuàng)作與部署3D互動體驗,并一鍵分發(fā)至多端平臺。除游戲以外,Yahaha還支持創(chuàng)作者們打造虛擬社交、藝術(shù)互動等不同形式的3D創(chuàng)作,并能夠輕松變現(xiàn)。玩家們也能夠體驗社區(qū)創(chuàng)作者制作的3D內(nèi)容,在虛擬世界發(fā)現(xiàn)志同道合的好友。

Yahaha的移動端應(yīng)用則為玩家打造了前所未有的多人實時共創(chuàng)和社交體驗。

支持3D的移動端原生應(yīng)用

1676601080(1).png

通過Yahaha移動端應(yīng)用,玩家可以瀏覽到海量的UGC創(chuàng)作,無需預(yù)裝游戲或其他3D內(nèi)容,能夠以即點即開的方式快速地與朋友一起進(jìn)入游戲。為了實現(xiàn)在一個包體只有100多MB的移動端產(chǎn)品上提供秒開秒關(guān)的3D內(nèi)容瀏覽體驗,同時為創(chuàng)作者提供海量的資產(chǎn)調(diào)度與多端支持,來看看Yahaha的技術(shù)團(tuán)隊都做了哪些努力吧。

1676601052(1).png

為了提供最自由順暢與沉浸的3D體驗給用戶,Yahaha移動端產(chǎn)品的開發(fā)團(tuán)隊做了大量的技術(shù)可行性研究與方案的迭代。在經(jīng)過多輪迭代后,我們最終選擇將Unity runtime內(nèi)嵌在Flutter架構(gòu)中來開發(fā)Yahaha移動端應(yīng)用。Flutter的優(yōu)勢是能夠保證跨端應(yīng)用體驗的一致性,它的使用極大提高了我們的開發(fā)效率?;谶@一框架,我們將Yahaha移動應(yīng)用拆分為UI層、平臺層和基礎(chǔ)層三層。

640.png

·UI Layer:由Unity runtime與Flutter組成,負(fù)責(zé)處理面向用戶交互的部分,例如3D場景、UI組件等。Flutter和Unity在開發(fā)時基本上與平臺底層的搭建無關(guān),因此UI Layer是完全脫離平臺底層的。

·Platform Layer:負(fù)責(zé)處理與平臺層功能實現(xiàn)相關(guān)的部分,例如讀取相冊文件、網(wǎng)絡(luò)狀態(tài)等。這些不得不依賴于平臺自身特性的功能,我們加以抽象構(gòu)建出來了各種純邏輯用的插件供Flutter使用。

·Infra Layer:基礎(chǔ)層是Yahaha從零搭建起的支持平臺高效運行的后端基建,實現(xiàn)了包括內(nèi)容加密、游戲預(yù)加載、Flutter與Unity的通信等功能。

為了更好地運用Unity的能力,我們選擇了將Unity作為庫(Unity-as-a-library,UAAL)的方案,可以讓Yahaha移動端應(yīng)用決定什么時候載入,激活,卸載Unity的運行時庫。開發(fā)團(tuán)隊做了大量工作來適配UAAL,讓玩家可以更好地在嵌入屏幕或者全屏的模式中瀏覽3D場景并進(jìn)行互動操作。

3D游戲資產(chǎn)流技術(shù)(asset streaming)

玩家在進(jìn)入與瀏覽由創(chuàng)作者創(chuàng)作的3D體驗時,漫長的游戲下載和安裝時間會極大影響體驗,因此我們期待能夠向玩家提供即點即開(instant gaming)的體驗。我們通過將用戶創(chuàng)作的多人游戲的邏輯部分運行在我們自己的服務(wù)器上來支持內(nèi)容的“瞬時啟動”(我們會有另外一篇文章討論該部分的技術(shù)實現(xiàn)),并將包含以下功能的asset streaming方案部署在了多平臺上(包括Windows,Mac,iOS,Android以及Linux):

·在打包時對資源進(jìn)行細(xì)化拆分,并通過自定義的序列化方式對資源數(shù)據(jù)進(jìn)行保存。

·在運行時動態(tài)確定進(jìn)入游戲所需要的最小資源集合,玩家只需要下載最小資源包(一般來說大小在游戲整包的3%以下)即可進(jìn)入游戲。

·通過一些自定義的策略進(jìn)行動態(tài)的資源數(shù)據(jù)化,將資源與邏輯分開,以保證資源streaming不會影響到正常的游戲邏輯。

·用戶進(jìn)入游戲后,平臺會對剩余部分的資源以可自定義的速度和策略在后臺持續(xù)下載,并在每個子資源下載加載完成后動態(tài)替換到運行中的游戲場景中。

伴隨無代碼創(chuàng)作工具的產(chǎn)生,越來越多的內(nèi)容創(chuàng)作者能夠擺脫束縛,創(chuàng)作出自己腦海想象中的多人游戲與3D體驗。當(dāng)創(chuàng)作者不再需要花費大把時間學(xué)習(xí)技術(shù)與獲客,不再需要付出高昂的成本購買資產(chǎn)和部署服務(wù)器,而是將更多時間聚焦在內(nèi)容創(chuàng)作上時,更多優(yōu)質(zhì)的內(nèi)容也會隨之產(chǎn)生。我們一直致力于實現(xiàn)3D體驗的創(chuàng)作平權(quán),產(chǎn)品的alpha版本即將會在未來的幾個月里與大家見面,期待與大家一起開始創(chuàng)造我們所想象的世界。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:Yahaha Studios
版權(quán)說明:本文內(nèi)容來自于Yahaha Studios,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家