游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3206|回复: 0

白鹭引擎助力《迷你世界》研发团队开发3D小游戏版

[复制链接]

4万

主题

5万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
85959
发表于 2020-8-18 11:54:51 | 显示全部楼层 |阅读模式
《迷你世界》作为国内第一的放置类3D沙盒游戏,依靠三四线城市的游戏市场及垂直媒体的传播途径,研发团队用了短短3年时间就创造出了8000万活跃玩家、5000万玩家原创作品,仅2020年上半年,关于《迷你世界》的短视频点击量已超600亿。在开发团队和玩家们的共同努力下,现在《迷你世界》已经形成了一个非常完整的游戏生态。

在小游戏成为新型流量入口的的今天,《迷你世界》开发团队也发现了这片“新的生态世界”,他们希望在这个世界中继续延续创造之旅。

经过多方考察、慎重考虑,开发团队决定研发一款适合小游戏平台的沙盒游戏,他们希望这款小游戏不仅可以与《迷你世界》有所区别,同时可以与《迷你世界》实现互补、导流,能够成为《迷你世界》内容创作生态的一部分,进而打通手游、小游戏用户群的壁垒。

《迷你世界创造板》3D小游戏因此而诞生,开发团队从筛选小游戏引擎,决定使用白鹭引擎,到游戏开发上线大概用了两个月。

今天,我们与《迷你世界创造板》研发团队接洽,一起聊聊这款小游戏的开发故事。

坚守初衷,精准获取用户群

随着小游戏引擎能力逐步变强,开始支持了3D能力的研发,而《迷你世界》中“微缩方块”的功能特别受到玩家的欢迎,研发团队在创作这个点上做更多方便、快捷、有趣的尝试。同时多维度的服务《迷你世界》内容生态中的游戏创作者与开发者,让他们能够纯粹的体会到游戏乐趣,而不需要为工具发愁。

因此,在《迷你世界》游戏基础上衍生出的官方创造工具——《迷你世界创造板》,这款游戏研发的初衷主要是给广大青少年提供一个更健康的像素场景搭建环境,脱离必须在游戏场景中进行像素作品的搭建桎梏,同时基于小游戏平台打造更便携的创作入口,即开即玩,并且更方便的将自己的作品分享给好友,共享创作乐趣。

配图gif  3 (2).gif

《迷你世界创造板》核心用户群主要聚焦在:迷你世界的玩家和所有体素爱好者。

而项目团队成员则汇聚了拥有各种项目经历的策划同学,制作多款小游戏的资深程序员,大家基于相同的愿望和爱好聚集在一起,希望共同开发一个有趣的创作平台,让众多玩家一起会因为爱好聚集在一起,分享自己的作品。

携手白鹭引擎提高开发效率、快速上线

由于《迷你世界创造板》研发团队第一次使用白鹭引擎,对其熟悉度并不高,这次做的又是兼容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,实现了完全不依赖于平行光实现了光影效果。具体的技术原理和效果预览如下所示:

问题2 配图1.png

问题2 配图 2.png

第三个是 2D/3D渲染结合。

《迷你世界创造板》游戏中分别为用户提供了2D和3D的创造场景,因此研发团队对2D/3D游戏画面的兼容及互相切换要求比较高。

而在Egret Pro 早期提供的技术方案是在 3D 场景中创建一个Stage2D节点用于显示2D内容,这个2D节点中可以使用现有的 Egret2D API。但是这种方式结合 2D/3D代码书写相对比较生硬,在一开始还有一些BUG。

为了改善这一开发体验,白鹭引擎技术支持团队提供了一种新的方案,将 Egret Pro 打包为一个库项目,然后在现有 2D 项目中可以直接引用这个库,这种方式我们认为对开发体验改善非常大,未来的项目中我们会继续采用这种新方案。

配图gif 5 (1).gif

此外,白鹭研发团队还将 Egret Inspector 适配到了 Egret Pro 中,大大改善了3D游戏场景中的2D UI的开发效率,带给我们一个小小的惊喜!让我们印象深刻!

《迷你世界创造板》是 Egret Pro早期版本用户,相比于初期版本,现在的Egret Pro在功能及发布平台支持方面已经有了很大提升,已经可以同时支持发布Web 版本与微信小游戏、EgretNative,OPPO小游戏,vivo小游戏等多个平台,帮助游戏企业多渠道获取用户。我们也相信未来白鹭引擎研发及技术支持团队会不断的优化提升开发体验。

感谢《迷你世界创造版》研发团队的分享以及对白鹭引擎研发及技术支持团队的认可,也希望他们可以继续延续创造体验,帮助迷你世界的玩家和所有体素爱好者在这里展示一个又一个创意设计!

《迷你世界创造版》小程序码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-12-4 16:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表