白鷺引擎助力《迷你世界》研發團隊開發3D小遊戲版
在小遊戲成為新型流量入口的的今天,《迷你世界》開發團隊也發現了這片“新的生態世界”,他們希望在這個世界中繼續延續創造之旅。
經過多方考察、慎重考慮,開發團隊決定研發一款適合小遊戲平臺的沙盒遊戲,他們希望這款小遊戲不僅可以與《迷你世界》有所區別,同時可以與《迷你世界》實現互補、導流,能夠成為《迷你世界》內容創作生態的一部分,進而打通手遊、小遊戲使用者群的壁壘。
《迷你世界創造板》3D小遊戲因此而誕生,開發團隊從篩選小遊戲引擎,決定使用白鷺引擎,到遊戲開發上線大概用了兩個月。
今天,我們與《迷你世界創造板》研發團隊接洽,一起聊聊這款小遊戲的開發故事。
堅守初衷,精準獲取使用者群
隨著小遊戲引擎能力逐步變強,開始支援了3D能力的研發,而《迷你世界》中“微縮方塊”的功能特別受到玩家的歡迎,研發團隊在創作這個點上做更多方便、快捷、有趣的嘗試。同時多維度的服務《迷你世界》內容生態中的遊戲創作者與開發者,讓他們能夠純粹的體會到遊戲樂趣,而不需要為工具發愁。
因此,在《迷你世界》遊戲基礎上衍生出的官方創造工具——《迷你世界創造板》,這款遊戲研發的初衷主要是給廣大青少年提供一個更健康的畫素場景搭建環境,脫離必須在遊戲場景中進行畫素作品的搭建桎梏,同時基於小遊戲平臺打造更便攜的創作入口,即開即玩,並且更方便的將自己的作品分享給好友,共享創作樂趣。
《迷你世界創造板》核心使用者群主要聚焦在:迷你世界的玩家和所有體素愛好者。
而專案團隊成員則匯聚了擁有各種專案經歷的策劃同學,製作多款小遊戲的資深程式設計師,大家基於相同的願望和愛好聚集在一起,希望共同開發一個有趣的創作平臺,讓眾多玩家一起會因為愛好聚集在一起,分享自己的作品。
攜手白鷺引擎提高開發效率、快速上線
由於《迷你世界創造板》研發團隊第一次使用白鷺引擎,對其熟悉度並不高,這次做的又是相容2D/3D創造場景的專案,因此研發團隊在正式開工前已經做出預判:過程不會特別的順利,會遇到一些問題。
研發團隊在確認引擎後的第一時間就與白鷺引擎的技術支援團隊聯絡並達成合作,希望幫助他們解決專案開發中的難題,從而提高開發效率,節約時間進而壓縮成本,實現專案快速上線。
我們通過具體開發問題例項來看下《迷你世界創造板》研發團隊開發過程中遇到的問題及白鷺引擎技術支援團隊給予的解決方案:
第一個是遊戲的DrawCall過高導致遊戲比較卡的問題。
《迷你世界創造板》遊戲中存在著大量的立方體物件,在最初的版本中,研發團隊是將每一個立方體物件作為一個 GameObject 進行維護。由於遊戲中的場景可以達到 100*100*100,這樣的話 GameObject 的理論值就會高達一百萬。研發團隊在測試一個場景採用60*60*60的尺寸時發現:遊戲的DrawCall 已經達到了二十萬,根本無法渲染。
白鷺引擎技術支援根據此需求提供了定製技術Demo,建議研發團隊將立方體修改為使用自定義Mesh頂點繪製的方式來去實現。這樣每個場景中的模型不再是一群立方體模型的集合,而是僅一個通過演算法自定義生成的模型。由於WebGL 1.0 版本一次繪製僅支援 65535 個頂點,所以最終繪製並不是一個模型,而是根據定點數量動態新增。
通過這項優化,在上述60*60*60的遊戲場景中,DrawCall 從20萬降低至60,遊戲幀頻可以60幀流暢執行,順利解決了此問題。
第二個是光影效果問題。
《迷你世界創造板》研發團隊最開始採用的是白鷺引擎官方提供的平行光源進行燈光陰影處理,但是這種方式在遊戲場景中有些不協調。在白鷺引擎技術團隊的幫助及建議下,我們採用了 Ambient Occlusion 的技術,並將其進行進一步的簡化,通過自定義頂點資訊和自定義Shader,實現了完全不依賴於平行光實現了光影效果。具體的技術原理和效果預覽如下所示:
第三個是 2D/3D渲染結合。
《迷你世界創造板》遊戲中分別為使用者提供了2D和3D的創造場景,因此研發團隊對2D/3D遊戲畫面的相容及互相切換要求比較高。
而在Egret Pro 早期提供的技術方案是在 3D 場景中建立一個Stage2D節點用於顯示2D內容,這個2D節點中可以使用現有的 Egret2D API。但是這種方式結合 2D/3D程式碼書寫相對比較生硬,在一開始還有一些BUG。
為了改善這一開發體驗,白鷺引擎技術支援團隊提供了一種新的方案,將 Egret Pro 打包為一個庫專案,然後在現有 2D 專案中可以直接引用這個庫,這種方式我們認為對開發體驗改善非常大,未來的專案中我們會繼續採用這種新方案。
此外,白鷺研發團隊還將 Egret Inspector 適配到了 Egret Pro 中,大大改善了3D遊戲場景中的2D UI的開發效率,帶給我們一個小小的驚喜!讓我們印象深刻!
《迷你世界創造板》是 Egret Pro早期版本使用者,相比於初期版本,現在的Egret Pro在功能及釋出平臺支援方面已經有了很大提升,已經可以同時支援釋出Web 版本與微信小遊戲、EgretNative,OPPO小遊戲,vivo小遊戲等多個平臺,幫助遊戲企業多渠道獲取使用者。我們也相信未來白鷺引擎研發及技術支援團隊會不斷的優化提升開發體驗。
感謝《迷你世界創造版》研發團隊的分享以及對白鷺引擎研發及技術支援團隊的認可,也希望他們可以繼續延續創造體驗,幫助迷你世界的玩家和所有體素愛好者在這裡展示一個又一個創意設計!
《迷你世界創造版》小程式碼
相關文章
- 微信小遊戲和白鷺引擎開發實踐遊戲
- 白鷺引擎王澤:巧用Webpack與EUI Compiler改善重度小遊戲開發效率WebUICompile遊戲開發
- 白鷺引擎王澤:Egret Engine如何改善現有遊戲專案的開發體驗遊戲
- 基於eui的白鷺引擎H5小遊戲入門總結UIH5遊戲
- 遊戲開發原理——手遊開發團隊與成本遊戲開發
- 小遊戲研發團隊生存圖鑑:存活還是解散,這是個問題!遊戲
- 《蔚藍》開發團隊公開遊戲新作《Earthblade》遊戲
- 小團隊產品研發管理V0.0.1
- 忙到飛起卻進展緩慢?聊聊小團隊提升遊戲研發效率的方法遊戲
- 使用Laya引擎開發微信小遊戲(上)遊戲
- 使用Laya引擎開發微信小遊戲(下)遊戲
- 次留提升10%? 3D小遊戲研發發行中的那些坑3D遊戲
- 3人獨立團隊分享3D roguelite遊戲《Tower Princess》的開發歷程3D遊戲
- 巨量引擎:小創意大世界休閒遊戲開發者指南(附下載)遊戲開發
- 微信小遊戲首度亮相 ChinaJoy,助力開發者玩轉小遊戲遊戲
- 完美世界遊戲也開發獨立遊戲?旗下大學生團隊作品《逐光之旅》試玩開啟遊戲
- 用“遊戲機制”助力產品研發遊戲
- Facebook開發小遊戲引擎列表(下載連結)遊戲引擎
- Egret白鷺H5開發-圍住神經貓H5
- 技術團隊:研發中的短跑衝刺和馬拉松遊戲遊戲
- 悠遊世界合成遊戲系統技術開發解析/合成遊戲/小遊戲遊戲
- 我完成了10000小時開發3D引擎3D
- 悠遊世界/遊戲/系統技術開發/悠遊世界養成遊戲開發解析遊戲開發
- 堅守初心,白鷺引擎七年之癢
- 騰訊遊戲DBA團隊的發展自白遊戲
- 《Unity 3D 遊戲開發(第2版)》讀後感Unity3D遊戲開發
- pygame開發小遊戲GAM遊戲
- 聚焦遊戲開發速度與成本,穩定引擎基礎助力開發者快速整合應用遊戲開發
- 平臺要求遊戲獨佔 開發團隊該如何選擇?遊戲
- 中小遊戲開發團隊如何保持創作力?<經驗篇>遊戲開發
- 我的程式人生 (三)在百人團隊參與遊戲研發體驗遊戲
- 軟體研發之道:微軟開發團隊的經驗法則微軟
- 開發2年半,「紀念碑谷」的團隊做了一款開放世界“觀鳥”遊戲遊戲
- 臨時組建60人團隊,20天研發上線,揭祕這款公益遊戲背後的研發故事遊戲
- 《英靈亂戰》累計玩家數突破1億 研發團隊講述遊戲發展歷程遊戲
- 站在時代的風口 白鷺科技入局雲遊戲遊戲
- 如何用研發效能搞垮一個團隊
- 【Unity3D開發小遊戲】《戰棋小遊戲》Unity開發教程Unity3D遊戲