本帖最后由 电童·Isamo 于 2023-5-26 21:44 编辑
序言 —— Godot 4是个啥玩意儿?
北京时间2023年3月1日晚,Godot终于发布了4.0的stable版本,标志着Godot 4的全面问世与Godot引擎的跨时代重磅更新。如果你已经看过1L蓝字的帖子开头关于Godot的说明,那么我可以这么形容Godot 4:它可以说是Godot 3引擎的升级,但又与Godot 3是两个完全不同的引擎。 之所以说Godot 4还是Godot系列的引擎,这明显是废话了,毕竟还是那个团队开发的,而且内容上大部分也跟Godot 3保持一致。但说它跟Godot 3又是俩完全的不同的引擎,是因为Godot 4有着跟Godot 3几乎完全不同的背景,最主要的是:Godot 4的更新非常巨大,几乎是跨越式、破坏式的更新,导致其工程文件不向下兼容,同时,Godot 3的工程到Godot 4还要经过自动+人工的转化后才能用,这就导致这两个引擎出现了迭代裂痕。
关于Godot 4到底是因何产生的,我暂时无法得到确切的考证,但这张图,却说明了一个很有意思的情况: 这就是官方4.0最早的版本,也就是pre-alpha版本,它最早出现于2021年7月,而我们看看3.3.3版本的发布日期: 现在的最新版本是3.5.1(未来3.X版本最多更新到3.6.X),但很有意思的是:3.X还没更完,就出现了4.0的版本,有人可能会说了:这也没啥啊! 欸,一般的人可不会这么觉得,按照正常的思路,不应该是到结束大版本更新以后停更一段时间然后出新版本嘛?为什么官方在3.X还没结束的时候就已经在准备4.0了呢?这就要扯到4.0的诞生的目的了。
(注:以下大部分均为个人臆测,但有可能为官方的真实想法,仅供参考) 目前最可靠的流传,说是官方的开发团队当时开发了Godot 3之后,为了追寻更高性能的渲染,看中了Vulkan管线(性能卓越的渲染管线,旨在替代OpenGL),当时官方的打算是:将用Vulkan渲染管线的Godot 3版本更号为Godot 4。你认为仅此而已吗?那是绝对不可能的( 虽然官方刚开始对Godot 4的定位就是“Vulkan版的Godot 3”,但现实不停膨胀的需求让他们意识到:仅仅是将Godot的渲染管线替换为Vulkan那是不可能的,还需要适应更加现代化的需求。因此,Godot 4开始逐渐脱离原本的“Vulkan版Godot 3”的定位,开始探索适合自己发展的道路: - 官方团队对Godot 4的外观进行了调整,使得原本的UI更加现代化。
- 官方还针对更加膨胀的3D需求下了狠功夫,现在3D功能更加强大。
- 官方对Godot所使用的GDScript进行了升级,对部分繁琐的语法进行了更加人性化、python化的调整,大大提高了开发者的编写效率。
- 官方还对Godot 3的不足进行了提升,在Godot 4内得以实现。
- 由于大量的内容更新,Godot 4的文件大小已经不再像Godot 3那么轻便了,光是软件本体现在就需要100MB,足足翻了一倍
直到2022年初,官方才发布了4.0的第一个alpha版本。然而,受疫情影响,加上开发道路上的各种bug层出不穷,原计划去年发布的4.0正式版却要推迟到本月末发布。不过如今,我们终于可以使用4.0版本的Godot了。
由于更换为了Vulkan管线,Godot 4对2D渲染的效率肯定是大大提升的,尤其是对于性能偏下等但支持Vulkan的的机子来说,Vulkan的出现算是它们的救命稻草。同时,对于2D节点,Godot 4也对它们在检查器列表中的表现进行了强化,使得原本一些不能在检查器里修改的属性现在可以直接在检查器中修改了。但刚刚也说了,4.0还是走出了属于自己的道路,这其中就包括对2D节点的属性进行的更改,包括但不限于更名与重写方法。因此相较于Godot 3,Godot 4的2D开发可能会对我们已经熟悉了3的操作来说的开发者来说还是有些挑战的。
前面提到,vulkan管线的引入,可以说是Godot 4最核心的一个升级,它不但为Godot 4提供了更卓越的渲染性能,还让Godot 4更加适应现代化的需求。但是,vulkan还是新兴管线,对于那些还不支持vulkan管线的老电脑用户来说,用Godot 4导出的游戏是望尘莫及的。不过官方也很用心,考虑到了这一点,于是在后来的某4.0alpha版本中新增了对OpenGL ES3(也就是Godot 3中的GLES3)的回滚支持,这一引入使得开发者能够导出兼容OpenGL渲染管线的作品,照顾那些还不能使用vulkan管线的老电脑用户。
总之,Godot 4就是这么一个玩意儿——它继承了Godot 3的优点,同时又对Godot 3中的缺陷进行了弥补。但因为走出了属于自己的路,导致与Godot 3无法完美衔接。
但不论如何,学习Godot 4的道路还是要以学习Godot 3的道路为基石的。因此,如果你需要从0开始学习Godot 4,不妨先学习1L蓝字链接所指向的帖子里的基础内容,然后拐回来学习Godot 4的新内容
|