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

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

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

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

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

1676601080(1).png

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

1676601052(1).png

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

640.png

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

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

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

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

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

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

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

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

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

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

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

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