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

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

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

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

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

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

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

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

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

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

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

由于《迷你世界创造板》研发团队第一次使用白鹭引擎,对其熟悉度并不高,这次做的又是兼容2D/3D创造场景的项目,因此研发团队在正式开工前已经做出预判:过程不会特别的顺利,会遇到一些问题。

研发团队在确认引擎后的第一时间就与白鹭引擎的技术支持团队联系并达成合作,希望帮助他们解决项目开发中的难题,从而提高开发效率,节约时间进而压缩成本,实现项目快速上线。

我们通过具体开发问题实例来看下《迷你世界创造板》研发团队开发过程中遇到的问题及白鹭引擎技术支持团队给予的解决方案:

第一个是游戏的DrawCall过高导致游戏比较卡的问题。

《迷你世界创造板》游戏中存在着大量的立方体对象,买QQ靓号平台在最初的版本中,研发团队是将每一个立方体对象作为一个 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小游戏等多个平台,帮助游戏企业多渠道获取用户。我们也相信未来白鹭引擎研发及技术支持团队会不断的优化提升开发体验。

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

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

  1. 白鹭引擎拉伸高度_答疑汇总|白鹭引擎架构师开源中国社区分享微信小游戏开发技巧...

    原标题:答疑汇总|白鹭引擎架构师开源中国社区分享微信小游戏开发技巧 1月31日-2月6日,开源中国社区邀请白鹭引擎首席架构师王泽以"微信小游戏开发技巧分享"为主题,为广大开发者带来 ...

  2. 团队开发--手机小游戏 需求分析

    一.项目名称:手机小游戏 二.设计背景 我们团队认为现在是21世纪,人际关系往往能决定你的人生是一帆风顺还是坎坷不平. 相信大家都有这样的经历,同学或者各种关系聚会的时候,会有一些时间比较尴尬,不知道 ...

  3. Egret白鹭引擎开发微信小游戏之保存图片到相册

    玩家在玩小游戏的过程中,很多时候想要保存一下当前的截图.或者保存游戏内精美的画面到相册,一方面是为了记录在游戏中的美好时刻,另一方面则是能够更好地和朋友们分享我在这游戏中获得的荣耀和快乐,因为我们就会 ...

  4. 如何不用服务器来开发一个小游戏

    我是代长新,来自上海享物说,主要负责游戏客户端研发. 享物说是一个大家可以互相赠送物品,有趣.不花钱的社区平台.为了创造更好的社区氛围,我们决定通过小游戏来增加社区的趣味性和互动性. <乐享花园 ...

  5. 如何开发一个小游戏?其中有什么难点

    如果仅仅针对个人开发者来讲,要独立开发一款大型游戏几乎无可能,更大成功的可能还是开发一款类似<羊了个羊>这样洗脑的小程序游戏. 所以这里主要论述小游戏开发的情况,也就是小程序游戏,首先从小 ...

  6. jpct-ae开发3D赛车游戏

    http://magicbird.iteye.com/blog/1578367 jpct-ae开发3D赛车游戏博客分类: jpct ae jpct-ae游戏引擎的资料比较少,本人是在官网中hellow ...

  7. unity开发微信小游戏(5)- 微信好友排行榜

    效果展示: 如果感觉文章有用的,也烦请大家多多支持(扫描上面二维码n(*≧▽≦*)n)!!❤❤❤ unity开发微信好友排行榜可以说是把我虐的体无完肤,但为了拿下这功能,硬壳了三天,把我所踩过的坑分享 ...

  8. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  9. 用cocos实现的《我的世界》已经上线微信小游戏,分享一下主要技术

    摘要 本文介绍了用cocos creator3.x开发的<我的世界>小游戏版<像素空间3d>的主要内容和涉及到的技术概述.✨ 欢迎大家扫码体验

最新文章

  1. NB-IOT来了,物联网时代才真正来临
  2. mxnet加载预训练
  3. CefSharp For WPF响应页面点击事件
  4. 2、ALTER TABLE:修改数据表
  5. QT学习:基于UDP的网络广播程序
  6. 「Python」pycharm多项目虚拟环境切换
  7. 计算机英语词汇的特点,电子商务英语词汇都有哪些特点
  8. python中seed的用法_Python中的seed()方法怎么用
  9. 这是我见过对 IOC 和 DI 解释的最清楚的一篇文章了!
  10. 1.1 让CPU占用率曲线听你指挥[cpu manager]
  11. Hibernate在自由状态和持久的状态转变
  12. vue导出excel并修改样式
  13. python中pass作用_总结python中pass的作用
  14. 企业信息化规划的重要性
  15. mysql 多条件 sumif_关于求和我只用数据库函数Dsum,从不用Sum、Sumif等,你信吗?...
  16. 网站建设中如何打造最优seo优化页面
  17. Android设置WIFI静态IP
  18. 如何将Word中数据转换为excel表格
  19. 设计一可控同步四进制可逆计数器, 其由输入X1,X2控制, 用D触发器和74153及必要的门电路实现
  20. 一文读懂多架构的中断控制器

热门文章

  1. [PHP] 现代化PHP之路:composer的安装和升级
  2. 2019招商银行M-Geeker线上比赛题解析
  3. 值得收藏的JSP连接mysql数据库的例子
  4. BZOJ3139/BZOJ1306 HNOI2013比赛/CQOI2009循环赛(搜索)
  5. Django model 中的 class Meta 详解
  6. 父框架与子框架的互操作
  7. sql从某不连续的数字中将其分段并找出缺失的数字并分段
  8. Android CTS 测试总结【转】
  9. ACDream - Dynamic Inversions II
  10. SPOJ Python Day2: Prime Generator