去年Unity的收费策略风波,很多人一开始只是想路过喷一口Unity,但到最后俨然成为了一场狂欢。很多非主流的以及Unity以外的相对主流的游戏引擎借此机会拉到了不少新用户。
Godot在这场狂欢中无疑吸引了不少开发者的关注。不过为什么是它呢?这个问题我们会在这一系列文章中慢慢找到自己想要的答案。
The Godot Engine is a free, all-in-one, cross-platform game engine that makes it easy for you to create 2D and 3D games.
Godot引擎是一款免费、功能齐全、跨平台的游戏引擎。帮助你创作2D和3D游戏。
Godot的名字确实 源自 曾出现在一些语文课本上的法国荒诞剧《等待戈多》(法文: En attendant Godot ,英文: Waiting For Godot )。按照法语念法,最后那个t是不发音的。但是大家依然有念成“go dot”的自由。 Different languages have different pronunciations for Godot and we find it beautiful.
不同的语言对于Godot有不同的念法,我们认为这是很美妙的。
Godot认为这种方式是更符合直觉的设计。游戏由场景组成,场景由节点组成。结点自然而然地构成结点树。其他场景也可以嵌入到场景的某一结点上构成场景的一部分。
Godot本身由C++写就。Godot官方支持两种脚本语言:GDScript和C#。GDScript是专为Godot开发的脚本语言,语法和Python高度相似,并提供了诸多方便Godot的语法糖。C#是大家的老朋友了,Unity也采用C#作为脚本语言。
Godot内置脚本编辑器。并内置代码高亮、自动补全、调试等基本功能。
除此之外,Godot提供了GDExtension(3.x为GDNative)——一种让引擎得以和native库交互的技术。通过社区实现的各种其他语言的绑定,你可以用更多的语言来编写代码让Godot调用。诸如rust、haxe、swift均有此类实现。
Godot有专门的2D渲染引擎,可以使用“‘真正的’2D、基于像素的单位系统”,不需要考虑Z轴的存在。
Godot内置有大量便于2D游戏开发的工具,tile编辑器、tile map编辑器、帧动画等需求都有内置支持。
Godot的3D游戏开发依然基于场景和结点系统。开发时可以根据需求选择基于OpenGL和Vulkan的不同的渲染器,支持各种现代特性(至少是4.0之后的事)。
Godot早期是由两位原作者Juan Linietsky和Ariel Manzur开发的,于2014年开源。
一般的开发者有足够的自由来使用Godot,对于当时陷入计费风波的Unity来说确实有吸引力。
好吧,跨平台对于游戏引擎来说更像是刚需和基本要求。不过Godot也有它的惊喜。比如它可以在浏览器中运行:
这应该要得益于Godot编辑器本身也是用Godot开发的。
到这里你会发现Godot的第一个可以直观感受到的好处。
上方是最新稳定版本,下方是LTS(长期支持)版本,也就是3.x。目前对于新入坑来说,应当优先考虑最新版。
目前同一版本号的Godot又会分为两个版本。图中上方是“标准版”,下方的 .NET 版是提供C#支持的版本。
要使用C#编写脚本必须用.NET版,但是.NET版也支持使用GDScript,这点不用担心。开发者表示未来可能会解决分两个版本的问题。
Godot用的是标准的.NET实现。.NET版需要.NET SDK的支持。你也可以无压力地用各种nuget包。
但是后面一系列文章主要用GDScript讲解以面向更多读者,C#语言基础不在本系列文章讨论之内。
点击下载后,你会得到一个一百多兆的压缩文件。里面只有两样东西:
这是安装程序吗?不是,这就是Godot release的所有内容。解压到任何地方,点击上面那个就可以启动Godot( _console 后缀的可以从控制台启动,在控制台中显示各类输出信息,常规开发不需要使用)。
没错,这一个文件就是Godot的全部,你可以到处移动到处用。所有的功能都在里面。没有安装,没有注册登录。如果是其他成熟的商业引擎,注册登录下载安装一套操作下来,你估计已经用Godot做了个小游戏了()。
评论区
共 4 条评论热门最新