迷你世界创造版怎么玩
迷你世界创造版玩法是第一个是游戏的DrawCall过高导致游戏比较卡的问题通过这项优化,在上述60*60*60的游戏场景中,DrawCall 从20万降低至60。第二个是光影效果问题。第三个是 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小游戏等多个平台,帮助游戏企业多渠道获取用户。我们也相信未来白鹭引擎研发及技术支持团队会不断的优化提升开发体验。