经过了又一个月的开发工作,在此作进度报告。本月的工作可以划分为:完成Web导出工具开发、GDNative、以及新的粒子系统。
Web Export
Godot 现在有了一款实验性的导出工具,导出目标为WebAssembly 与 WebGL2。这要感谢eska的工作成果。这项功能需要在最新的Chrome或Firefox浏览器中进行测试,不过运行效果是真的好。它甚至可以让游戏在移动Web环境完美运行!
这里有一个小型的 platformer demo 供大家体验(记住只能在最新版本的Chrome或Firefox下运行!)。
GDNative
我们最近写了一篇关于 GDNative的文章。现在,让我来告诉你由Thomas Herzog (karroffel) 与Bojidar Marinov (bojidar-bg)开发的这项令人惊艳的新特性。它能产生许多好玩的事情:
- 添加用C++编写的Godot对象,而无需重新编译godot或编辑器。原理是在此之前要先创建一个模块,用于进行隐式重新编译一切。
- 可以优化游戏的任意部分,即用C++进行重写,也可用任何能编译成目标平台原生代码的语言进行编写,而且无需重新编译引擎或模板。
- 不用任何的重新编译即可绑定任意外部库(如SQLite、Steam等)。甚至可能从我们的Asset共享仓库下载这些绑定库。
- 使用官方库可以添加更多的Godot之外的导入导出格式。比如你可以从Asset Sharing平台下载一个FBX导入模块。就像直接支持各种素材一样,如Spine(译注:2D动画制作软件)使用自己的库。
- 添加外部脚本语言,如Lua、Python等。当然,不到GDScript那么好的整合程度,能发挥的作用会比较小,你要清楚这些限制。
这将是Godot 3.0一项令人惊艳的新副产物。
新的粒子系统
Godot 3.0会带来一套新的粒子系统。随着时代的变化,该系统最主要的区别是粒子系统完全通过GPU来处理的,这意味着什么呢?
速度!
你可以在那些过时的CPU或移动设备上运行几十万个粒子,或者在现代的桌面GPU上运行上百万个粒子。
定制化
我们提供了默认的粒子材质的同时,还可以让你完全通过Shader编写自己的粒子逻辑。还可以将例子系统转换到Shader以便手动进行进一步的修改。
更多能力
默认粒子材质允许使用时间变化曲线对所有参数进行调整(tweaking)。
同时它也不再仅限于公告牌(Billborad)。新的例子系统默认才用Mesh - 要想实现那种代理四面体(译注:你知道公告牌是什么效果就知道这个词什么意思了)的效果,只需要创建一个QuadMesh节点,并指定一个billboard 属性为true的材质即可。
由于可以通过GPU处理更多粒子,因此可以实现更精彩的效果如基于暴风算法的跟随(brute-forced trails):
并且最终能提供更强大的自发光体,如Box、Sphere及Mesh面或体。Mesh平面也可直接按法线发光:
我们也想让骨骼变换(skeletal transform)支持发光Mesh,不过虽然不是太复杂也得等到3.1啦 :(
Godot 3.0 alpha
截止本次报告为止,在3.0中计划的所有主要功能均已实现。我们很快会释出一个alpha构建版本,以便所有人开始体验及『捉虫』。敬请期待!
查看代码
如果你有兴趣看看代码里这几个特性是如何实现的,可以检出托管在GitHub上的 master 分支代码。
本文译自: https://godotengine.org/article/godot-30-progress-report-6