戈戈斯3.3.

2021-04-22 11:48:40

所有Godot贡献者都很高兴发布我们今天的最新里程碑,Godot 3.3,经过超过7个月的发展!此版本最初计划为3.2分支的3.2.4更新,但它增长了成为一个功能包装的更新值得打开一个新的稳定分支。

虽然大多数发展焦点在我们即将到来的Godot 4.0发布中,许多贡献者和用户都希望立即开发和发布他们的游戏,所以它对我们来说很重要,以便保持Godot 3用户改进Gamedev经验。因此,大多数焦点都在实施缺少的功能或错误修正,这对于使用Godot 3发布2D和3D游戏至关重要,以及使现有功能更优化可靠。

Godot 3.3与Godot 3.2.x兼容,是所有3.2.x用户的推荐升级。

立即下载Godot 3.3并阅读了解更多有关我们版本控制更新的更多信息,我们的支持计划以及此更新中的许多新功能。

当我们在2020年1月发布了Godot 3.2时,我们将开发焦点转向即将到来的Godot 4.0,这是一个主要的,兼容性破坏发动机的重写和#39; S核心和渲染。

我们知道这将需要一段时间,所以我们决定使3.2分支成为一个长期支持分支,它将获得3.2.x的更新与错误修复,但也只要他们不需要破坏兼容性。这导致我们拥有一个相当特色的3.2.2版本,超过6个月; D一直在使用另一个特征的3.2.4里程碑。

一路上,我们意识到我们的版本控制计划太令人困惑和限制,并且它可以从变革中受益。因此,计划成为戈达的3.2.4已更名为3.3,这是我们今天发布的释放&#39。

因此,Godot 3.3与Godot 3.2.x完全兼容(比如您的名为3.2.4的版本),并且是所有用户的推荐升级。

此重命名也意味着在3.2分支中不会发生新的发布。 Git上的3.2分支已重置为3.2.3稳定状态,因为在该分支中完成的所有后续工作都是3.3分支的一部分。

自从我们重新命名为3.2.4至3.3,从而开辟了一个新的稳定分支机构,这在戈戈斯4.0正在努力时,这对我们的长期支持的计划有何影响?

我们更新了我们的发布策略,以更好地反映我们的意图遵循语义版本,以及每个分支的支持期望。

就像在3.0之前,即将举行的Godot 4.0发布将是Godot生态系统的重大变化,我们预计用户将继续使用Godot 3.x一段时间,直到Godot 4.x足够稳定,并可在所有硬件上可靠地工作。

所以我们重新打开了3.x版本的开发分支机构,用于开发此版本3.3。我们现在使用它来开发Godot 3.4,这将是另一个功能版本,旨在与旧的Godot 3.x版本兼容(并且只包含从开发中的4.0版中回收的一些兼容更改)。

我们还有3.4的eta,但我们'重新瞄准即将到来的3.x发布的释放周期,现在我们有一个相当成熟的基础。

我们打算通过较小的版本(3.4,3.5等)继续支持3.x分支,只要我们拥有对此类更新感兴趣的用户和贡献者。在越来越短暂的情况下,我们仍然会在3.x更新中释放后,可能会在3.x更新之后,这可能是一个重叠的时期,就像我们使用Godot 2.1和3.x一样。

对于稳定的分支(例如3.3.x),我们返回更严格的语义版本控制,这些版本只包含错误修复和可用性/文档的改进。这应该为所有用户提供无风险的更新。

Godot 3的所有新功能工作将进入3.x分支机构的下一个次要释放(例如3.4)。这将使我们能够在确定需要(修复,安全问题,必要的平台更新等的关键回归)时以更快的步伐发布维护更新。因此,您可以预期Godot 3.3.1在未来几周内使用第一批修复。

戈达是一个致力于为世界提供最佳自由和开放的源游戏技术的非营利组织。捐赠和公司助推剂在使我们能够以这种持续的步伐开发戈达,以来,他们扮演了一个至关重要的作用,因为它们是我们唯一的收入来源,并用100%支付开发人员在发动机上工作。感谢你们所有人的顾客从我们心中的底部!

如果您使用并享受戈达,计划使用它,或者希望支持拥有成熟,高品质的自由和开源游戏引擎的原因,然后请考虑成为我们的赞助人。如果您代表公司并希望让我们的广大社区知道您支持我们的事业,请考虑成为我们的赞助商。额外资金将使我们能够雇用更多核心开发人员在发动机全职工作,从而进一步提高其发展步伐和稳定性。

在这段长的介绍之后,有时间看看Godot 3.3中包含的许多新功能!

已经有成千上万的变化,大而且很小,所以列出一切都是不可能的。但是,您可以咨询详细的变更,我们尝试列出大多数相关的更改,分隔类别:添加,更改,删除和修复。请注意,这是3.2.3稳定和3.3稳定之间的更改内容。如果您想了解所有更改与3.2稳定相比,您还应该考虑中间3.2.x更改。

在这篇文章的其余部分,我们的目标是概述最值得关注的特征和戈戈斯的变化3.2。您可以按顺序读取,或使用下面的索引跳转到您的感兴趣区域。

同样,这不是本释放中的更改的详尽清单,因此我们建议感兴趣的用户也潜入详细的更改内容以了解更多信息。

Fabio Alessandrelli(Foress)已经完成了很多工作来启用Web上的Godot编辑器,使用与Godot-Made游戏的相同的导出代码(因为Godot编辑器与Godot API一起开发100%)。这些变化导致Web导出的无数改进(见下文)。

建立在初始原型,我们现在达到了一个州,我们很高兴地与本机版本同步发布Web编辑器,因此您可以在Editor.GodoteNgine.org上找到最新的稳定版本。

运行&#34的Web编辑器;忍者冒险"来自像素男孩和AAA的同名CC0资产包装的演示。

查看Fabio'各种进度报告了解更多有关基本原理,用例和实施细节:第一个原型,第二种原型,Beta版本,发布候选人,渐进式Web应用程序。

Android App Bundle(AAB)是一种发布格式,可实现Android应用程序的更高效分配。感谢Aman Jain(Amanj120)和我们的Android维护者Fredia Huya-Kouadio(M4GR3D)的支持,Godot 3.3现在支持出口AABs除APKS之外。

Google Play建议发布aabs,因为它们使播放商店能够仅分发设备的ABI的首选本机库,例如,只有ARMEABI-V7A或ARM64-V8A。在2021年的下半年,AAB将成为Google Play的唯一支持的出版格式。

此外,已经实现了许多其他特征,例如SubView嵌入,支持Android 9+上的剪切/缺口,以及鼠标事件和外部键盘输入的实现。

为了适应Google Play要求,我们在没有启用外部存储权限时禁用RequestLegacyExternalStorage属性。请注意,如果您确实需要访问外部存储,则目前仍需要将此属性设置为支持范围存储HASN' T已实现。

同样,我们' ve更新了签名逻辑以使用apksigner而不是现在已被推荐的jarsigner。这要求您查看Android SDK设置和编辑器设置,以确保Godot可以在兼容版本中找到Apksigner。查看更新文档的Android导出。

Godot 3.2.2为Android插件推出了一个新的API,允许容易地建造和将它们分发到最终用户。

对于3.3,Sergey Minakov为iOS插件实现了相同的界面。这使得可以将ARKIT,GameCenter,InAppStore等移动IOS插件到单独的第一方Godot-iOS-Plugins存储库,因此可以独立于戈达本身改进。

对于第三方插件,可以为现在可以分发的第三方插件和即插即用的包装。有关创建和使用此类插件的相关文档,请参阅iOS插件。

与Web编辑器一起工作并行,Fabio对HTML5平台端口进行了许多改进,这将使所有用户受益。

一个值得注意的变化是现在在HTML5平台端口中支持线程和GDNATIVE。但是,由于平台限制,那些是相互不兼容的。加法,线程支持取决于SharedArrayBuffer API,这在所有浏览器中尚不支持(麦克斯和iOS上)。此类戈达3.3附带三个不同的出口模板,请参阅导出Web获取详细文档。

"线程"构建另外从支持Audioworklet API的支持,这允许更好的音频输出而不会阻挡主线程。

Fabio在Web Export中的GamePad和虚拟键盘的支持也大大提高了支持......以及距离其他事情的吨,这是不可彻底提及这里的。但简而言之,3.3是Web导出的大规模版本。

感谢Pāvelsnadtočajevs(Bruvzg),Godot 3.2.3已经支持编写Godot for Apple M1 Mac(ARM64架构),但我们签订了我们的基础架构,以便当时提供此类构建。与Godot 3.3,我们现在提供了一个通用的二进制二进制二进制,它支持X86_64和ARM64 MAC。截至3.3,这仅适用于标准构建,而不是单声道构建,因为我们仍然需要更多的工作能够为Apple M1交换单声道。

此外,我们现在提供签名和公证的编辑二进制文件,所以您不再需要跳过箍来运行Mac上的Godot。感谢Hein-Pieter Van Braam-Stewart(HPVB)及其公司的职业宣传故事,他们提供了此类Mac和签署证书。两个标准和单声道构建都公证。

当您从MAC导出游戏时,“导出”对话框现在已支持签名构建,包括执行权限(这是从其他操作系统中遗憾的,因为它取决于宏特定工具)。

在为主分支机构(4.0)的工作后,PedroJ.Estébanez(Orconshaper)向3.x分支返回了他对多线程API的现代化。这在Godot'最近通过C ++ 11及其超出(现在的C ++ 17在Master Branch中的C ++ 17,3.x中的C ++ 14),为我们提供比更可靠的跨平台实现我们到目前为止的那些。

这应该有助于解决可能影响特定平台的一些问题,以及提高整体可靠性和性能。然而,这是一个相当重大的变化,因此如果您的项目在很大程度上依赖于多线程API并且您遇到任何问题3.3,请务必报告。

我们的贡献者割草机似乎已经决定解决3.x分支机构所需的许多优化,以简化戈达4.0的等待时间。一种这样的优化是实现动态BVH方法,用于空间分区作为戈达托的替代品。这旨在解决许多八卦实施的性能问题和错误,并优惠渲染和主神经学专门的支持(Bullet已经拥有自己的BVH)。

默认情况下使用新的BVH,但如果您在项目中注意到问题,有项目设置可以更改该项目并返回OctRee方法。确保报告您在GitHub上遇到的任何问题,以便我们可以继续为Godot 3.4提高这一点。

大多数戈达用户熟悉尝试在释放后访问对象的臭名昭示的情况。该引用不评估为null,但它可以安全地解除引用,导致释放版本崩溃的风险如果未使用IS_Instance_Valid()验证此类取消验证。在3.2.2中有几个修复程序,以及3.2.3的一些后续行动,但走得太远了:在3.2.3中的调试版本中,释放对象的引用将评估为空,从而导致棘手的情况游戏在编辑器(调试)中运行精细,但在发布模式下导出一次会出现错误或崩溃。

Godot 3.3通过衰减对Debug构建中的NULL释放对象的引用来解决这一点,因此您应该在编辑器中正确获取错误,以便识别哪些代码问题。

在3.2.2和3.2.3中在GLES2中实施2D批次后,律师般通过普通中间层大修,允许其在GLES3和GLES2中操作。此外,批处理已扩展以涵盖许多其他基元(Polys,Lines,NinePatches)以及早期版本中的矩形。

新的顶点格式允许更多的自定义着色器和案例来利用批处理,而不是之前的批处理,并添加了可选的2D软件脱衣,这应该允许在远以前可用的更广泛的硬件范围内使用2D骨架动画。

一如既往,可以通过在项目设置中关闭批处理来恢复传统渲染器。

在3.0释放之前,前3.x版本中的闪光灯快速放在一起,并且它有一些重大问题。它重用了用于烘焙巨石的代码的部分,这使得在质量方面快速但不太好。返回2019年夏天,我们已经知道Godot 4.0将拥有一个完全新的基于GPU的LightMapper,但它需要vulkan支持和4.0仍然很远,所以我们任务joan fons(jfons),作为GSOC计划的一部分,写一个新的CPU LightMapper for Godot 3.x.经过长期的开发和在这里和那里进行了几次重写后,全新的CPU LightMapper最终将在今年开始的3.3分行中。

与旧灯具的最大区别是新的一个具有正确的路径跟踪,这导致更好的灯光。而且,新的灯具带来了使用开放图像去噪的去噪,这导致在相同的烘烤时间范围内更好地看起来。最重要的是,其他生活质量改进已添加或返回4.0,例如支持烘焙环境照明,LightMap纹理搁置,每个对象分辨率缩放,在运行时的灯具的立方滤波,最后但并非最不重要,自动禁用烘焙灯,从而缓解混合烘烤和非烘焙物品的疼痛和相同的场景中的光。

虽然有关戈戈斯4.0所做的那么多渲染工作,但第3.3次发布获得了其公平的改进份额,归功于割草机,克莱约翰(Clayjohn),乔安诺·洛博伊奥(Calinou)(Calinou)等贡献者, Camille Mohr-Daurat(PouleyKetppoupp),NhodgesVFX等等!

一种新的软件,用于模拟肌肤,以取代Don' T支持快速GPU剥皮(特别是移动)的设备上的慢GPU脱皮。

隐藏3D对象的优化变换传播。虽然您可能期望隐藏的节点在性能方面不会花费很大,但分析显示这并非总是如此。这方面的一个方面是转换计算和家务,现在隐藏的节点已经大大减少了。

这是一项长期的承诺,涉及来自多个贡献者的多个PRS,以及许多额外的测试人员和审稿人,所以对他们来说是荣誉:Marcel Expiraal(Madmiraal),Camille,Bemyak,Rhathe等等!

Godot之前的单向碰撞3.3有很多问题,有多年的人知道,但当这段代码随时倾向于在给定的问题得到修复时。为了解决这一问题,除了一些优秀的调试和错误修复努力,Marcel和Camille设计了彻底的测试用例,使修复程序可以在许多不同的情况下验证。最终结果是更可靠的,尽管仍然存在许多已知问题,需要更多的修复和更多的测试用例来完全熨烫。

Camille,Marcel和Juan对长期存在的重要作品,具有运动体碰撞的可靠性。合并3.3的主要变更之一是对碰撞器中陷入碰撞器后的恢复的变化,影响Move_and_slide()或move_and_collide()等方法。

由于物理代码在尝试修复给定的边缘案例时,物理密码相当敏感并且容易出现回归,Camille为2D和3D制作了广泛的物理测试项目,以帮助验证更改并防止进一步的回归。

在这里,还有许多已知问题来解决,这将是Camille'未来几个月的主要焦点区域。许多即将到来的错误修复可能会被返回到3.x分支以供将来版本(例如3.4)。

作为他戈戈斯4.0工作的一部分,Camille正在在主管科学3D后端实施缺失的功能,以达到特色奇偶校验。其中一个是对汽缸碰撞形状的支持,这已经为戈达4.0实施,并以3.3返回到3.3。这是3.3的实验特征,因为它具有广泛的测试,并且边缘案例中有一些已知的错误,因此您可以预期在Godot 3.4中进一步修复。

能够轻松地剪切/复制和粘贴节点,听起来像一个基本功能,但现在它只可以以可靠的方式实现它,得益于Tomasz Chabora(kobewi)的艰苦工作。以前,要在场景中复制节点,它们必须在所需的父级下复制并拖动。使用笨重&#34只能在场景之间移动节点;从场景&#34合并;特征。能够像你可以复制文本一样容易复制节点可能是自第一个发布戈达以来的最想要的功能之一!

在实施它的时候有多次尝试,但需要时间进入可以合并的一些可靠的时间,尤其是由于需要考虑场景树的完整复杂性(实例场景,可编辑的儿童,共享或独特资源和子资源等)。在Godot 3.3中,梦想成真:可以在同一场景和场景之间切割,复制和粘贴节点。操纵场景树从未如此方便。

经过大量讨论后,Juan Linietsky(Reduz)对检查员实施了改变,以便在视觉上更好地突出次资源,使其更容易知道您'在有两个以上的级别时重新编辑。

这是为Godot 4.0实施但对后面很容易,所以你走了!可以在编辑器设置中自定义颜色和对比度。

当您将资产添加到Godot项目时,大多数人都会根据进口码头中配置的选项,在飞行中导入到引擎内部格式。所有资产类型都有一些预先存在的预设,您可以定义哪些预设应该用于相同类型的所有资源(例如" 2d Pixel"纹理预设),但直到没有容易在统一接口中轻松配置所有预设的方法。

对于Godot 4.0,Juan在“项目设置”对话框中实现了一个新的选项卡,以配置这些"导入默认值",这被支持到Godot 3.3。

此外,一个新的"保持"添加导入模式以配置要留下的特定文件

......