白鹭引擎助力《迷你世界》研发团队开发3D小游戏版
《迷你世界》作為國(guó)內(nèi)第一的放置類(lèi)3D沙盒游戲,依靠三四線城市的游戲市場(chǎng)及垂直媒體的傳播途徑,研發(fā)團(tuán)隊(duì)用了短短3年時(shí)間就創(chuàng)造出了8000萬(wàn)活躍玩家、5000萬(wàn)玩家原創(chuàng)作品,僅2020年上半年,關(guān)于《迷你世界》的短視頻點(diǎn)擊量已超600億。在開(kāi)發(fā)團(tuán)隊(duì)和玩家們的共同努力下,現(xiàn)在《迷你世界》已經(jīng)形成了一個(gè)非常完整的游戲生態(tài)。
在小游戲成為新型流量入口的的今天,《迷你世界》開(kāi)發(fā)團(tuán)隊(duì)也發(fā)現(xiàn)了這片“新的生態(tài)世界”,他們希望在這個(gè)世界中繼續(xù)延續(xù)創(chuàng)造之旅。
經(jīng)過(guò)多方考察、慎重考慮,開(kāi)發(fā)團(tuán)隊(duì)決定研發(fā)一款適合小游戲平臺(tái)的沙盒游戲,他們希望這款小游戲不僅可以與《迷你世界》有所區(qū)別,同時(shí)可以與《迷你世界》實(shí)現(xiàn)互補(bǔ)、導(dǎo)流,能夠成為《迷你世界》內(nèi)容創(chuàng)作生態(tài)的一部分,進(jìn)而打通手游、小游戲用戶群的壁壘。
《迷你世界創(chuàng)造板》3D小游戲因此而誕生,開(kāi)發(fā)團(tuán)隊(duì)從篩選小游戲引擎,決定使用白鷺引擎,到游戲開(kāi)發(fā)上線大概用了兩個(gè)月。
今天,我們與《迷你世界創(chuàng)造板》研發(fā)團(tuán)隊(duì)接洽,一起聊聊這款小游戲的開(kāi)發(fā)故事。
堅(jiān)守初衷,精準(zhǔn)獲取用戶群
隨著小游戲引擎能力逐步變強(qiáng),開(kāi)始支持了3D能力的研發(fā),而《迷你世界》中“微縮方塊”的功能特別受到玩家的歡迎,研發(fā)團(tuán)隊(duì)在創(chuàng)作這個(gè)點(diǎn)上做更多方便、快捷、有趣的嘗試。同時(shí)多維度的服務(wù)《迷你世界》內(nèi)容生態(tài)中的游戲創(chuàng)作者與開(kāi)發(fā)者,讓他們能夠純粹的體會(huì)到游戲樂(lè)趣,而不需要為工具發(fā)愁。
因此,在《迷你世界》游戲基礎(chǔ)上衍生出的官方創(chuàng)造工具——《迷你世界創(chuàng)造板》,這款游戲研發(fā)的初衷主要是給廣大青少年提供一個(gè)更健康的像素場(chǎng)景搭建環(huán)境,脫離必須在游戲場(chǎng)景中進(jìn)行像素作品的搭建桎梏,同時(shí)基于小游戲平臺(tái)打造更便攜的創(chuàng)作入口,即開(kāi)即玩,并且更方便的將自己的作品分享給好友,共享創(chuàng)作樂(lè)趣。
?
《迷你世界創(chuàng)造板》核心用戶群主要聚焦在:迷你世界的玩家和所有體素愛(ài)好者。
而項(xiàng)目團(tuán)隊(duì)成員則匯聚了擁有各種項(xiàng)目經(jīng)歷的策劃同學(xué),制作多款小游戲的資深程序員,大家基于相同的愿望和愛(ài)好聚集在一起,希望共同開(kāi)發(fā)一個(gè)有趣的創(chuàng)作平臺(tái),讓眾多玩家一起會(huì)因?yàn)閻?ài)好聚集在一起,分享自己的作品。
攜手白鷺引擎提高開(kāi)發(fā)效率、快速上線
由于《迷你世界創(chuàng)造板》研發(fā)團(tuán)隊(duì)第一次使用白鷺引擎,對(duì)其熟悉度并不高,這次做的又是兼容2D/3D創(chuàng)造場(chǎng)景的項(xiàng)目,因此研發(fā)團(tuán)隊(duì)在正式開(kāi)工前已經(jīng)做出預(yù)判:過(guò)程不會(huì)特別的順利,會(huì)遇到一些問(wèn)題。
研發(fā)團(tuán)隊(duì)在確認(rèn)引擎后的第一時(shí)間就與白鷺引擎的技術(shù)支持團(tuán)隊(duì)聯(lián)系并達(dá)成合作,希望幫助他們解決項(xiàng)目開(kāi)發(fā)中的難題,從而提高開(kāi)發(fā)效率,節(jié)約時(shí)間進(jìn)而壓縮成本,實(shí)現(xiàn)項(xiàng)目快速上線。
我們通過(guò)具體開(kāi)發(fā)問(wèn)題實(shí)例來(lái)看下《迷你世界創(chuàng)造板》研發(fā)團(tuán)隊(duì)開(kāi)發(fā)過(guò)程中遇到的問(wèn)題及白鷺引擎技術(shù)支持團(tuán)隊(duì)給予的解決方案:
第一個(gè)是游戲的DrawCall過(guò)高導(dǎo)致游戲比較卡的問(wèn)題。
《迷你世界創(chuàng)造板》游戲中存在著大量的立方體對(duì)象,買(mǎi)QQ靚號(hào)平臺(tái)在最初的版本中,研發(fā)團(tuán)隊(duì)是將每一個(gè)立方體對(duì)象作為一個(gè) GameObject 進(jìn)行維護(hù)。由于游戲中的場(chǎng)景可以達(dá)到 100*100*100,這樣的話 GameObject 的理論值就會(huì)高達(dá)一百萬(wàn)。研發(fā)團(tuán)隊(duì)在測(cè)試一個(gè)場(chǎng)景采用60*60*60的尺寸時(shí)發(fā)現(xiàn):游戲的DrawCall 已經(jīng)達(dá)到了二十萬(wàn),根本無(wú)法渲染。
白鷺引擎技術(shù)支持根據(jù)此需求提供了定制技術(shù)Demo,建議研發(fā)團(tuán)隊(duì)將立方體修改為使用自定義Mesh頂點(diǎn)繪制的方式來(lái)去實(shí)現(xiàn)。這樣每個(gè)場(chǎng)景中的模型不再是一群立方體模型的集合,而是僅一個(gè)通過(guò)算法自定義生成的模型。由于WebGL 1.0 版本一次繪制僅支持 65535 個(gè)頂點(diǎn),所以最終繪制并不是一個(gè)模型,而是根據(jù)定點(diǎn)數(shù)量動(dòng)態(tài)添加。
通過(guò)這項(xiàng)優(yōu)化,在上述60*60*60的游戲場(chǎng)景中,DrawCall 從20萬(wàn)降低至60,游戲幀頻可以60幀流暢運(yùn)行,順利解決了此問(wèn)題。
第二個(gè)是光影效果問(wèn)題。
《迷你世界創(chuàng)造板》研發(fā)團(tuán)隊(duì)最開(kāi)始采用的是白鷺引擎官方提供的平行光源進(jìn)行燈光陰影處理,但是這種方式在游戲場(chǎng)景中有些不協(xié)調(diào)。在白鷺引擎技術(shù)團(tuán)隊(duì)的幫助及建議下,我們采用了 Ambient Occlusion 的技術(shù),并將其進(jìn)行進(jìn)一步的簡(jiǎn)化,通過(guò)自定義頂點(diǎn)信息和自定義Shader,實(shí)現(xiàn)了完全不依賴(lài)于平行光實(shí)現(xiàn)了光影效果。具體的技術(shù)原理和效果預(yù)覽如下所示:
第三個(gè)是 2D/3D渲染結(jié)合。
《迷你世界創(chuàng)造板》游戲中分別為用戶提供了2D和3D的創(chuàng)造場(chǎng)景,因此研發(fā)團(tuán)隊(duì)對(duì)2D/3D游戲畫(huà)面的兼容及互相切換要求比較高。
而在Egret Pro 早期提供的技術(shù)方案是在 3D 場(chǎng)景中創(chuàng)建一個(gè)Stage2D節(jié)點(diǎn)用于顯示2D內(nèi)容,這個(gè)2D節(jié)點(diǎn)中可以使用現(xiàn)有的 Egret2D API。但是這種方式結(jié)合 2D/3D代碼書(shū)寫(xiě)相對(duì)比較生硬,在一開(kāi)始還有一些BUG。
為了改善這一開(kāi)發(fā)體驗(yàn),白鷺引擎技術(shù)支持團(tuán)隊(duì)提供了一種新的方案,將 Egret Pro 打包為一個(gè)庫(kù)項(xiàng)目,然后在現(xiàn)有 2D 項(xiàng)目中可以直接引用這個(gè)庫(kù),這種方式我們認(rèn)為對(duì)開(kāi)發(fā)體驗(yàn)改善非常大,未來(lái)的項(xiàng)目中我們會(huì)繼續(xù)采用這種新方案。
?
此外,白鷺研發(fā)團(tuán)隊(duì)還將 Egret Inspector 適配到了 Egret Pro 中,大大改善了3D游戲場(chǎng)景中的2D UI的開(kāi)發(fā)效率,帶給我們一個(gè)小小的驚喜!讓我們印象深刻!
《迷你世界創(chuàng)造板》是 Egret Pro早期版本用戶,相比于初期版本,現(xiàn)在的Egret Pro在功能及發(fā)布平臺(tái)支持方面已經(jīng)有了很大提升,已經(jīng)可以同時(shí)支持發(fā)布Web 版本與微信小游戲、EgretNative,OPPO小游戲,vivo小游戲等多個(gè)平臺(tái),幫助游戲企業(yè)多渠道獲取用戶。我們也相信未來(lái)白鷺引擎研發(fā)及技術(shù)支持團(tuán)隊(duì)會(huì)不斷的優(yōu)化提升開(kāi)發(fā)體驗(yàn)。
感謝《迷你世界創(chuàng)造版》研發(fā)團(tuán)隊(duì)的分享以及對(duì)白鷺引擎研發(fā)及技術(shù)支持團(tuán)隊(duì)的認(rèn)可,也希望他們可以繼續(xù)延續(xù)創(chuàng)造體驗(yàn),幫助迷你世界的玩家和所有體素愛(ài)好者在這里展示一個(gè)又一個(gè)創(chuàng)意設(shè)計(jì)!
總結(jié)
以上是生活随笔為你收集整理的白鹭引擎助力《迷你世界》研发团队开发3D小游戏版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 游戏寻路中 A* 算法的改进
- 下一篇: 游戏《蔚蓝山》教我的编程道理