初识Godot(1)--初步使用Godot创建结点并使用脚本

2023-05-16

偶然间发现Godot这样一个强大的开源游戏引擎,它十分友好的中文学习文档,让我立刻抛弃了unity,虽然unity也没有学习多久😂

今天简单的使用了一下Godot,了解了它的场景和节点是什么意思(以下内容部分嵌入Godot教程中的内容)。

它的思想非常符合我个人的习惯,一个人做游戏往往做不到那么有条理,如果做一个比较大型的游戏,更是容易糊里糊涂的不知道干啥(对我自己来说是这样的)。

Godot推荐忽略大多数常见的设计模式,如MVC或实体关系图,希望开发者以更自然的方式思考场景。

例如,这是一个简单的射击游戏可以想象的方式:../../_images/shooter_instancing.png

Godot推荐我们将一个游戏所要实现的功能想象成这样一个图的形式,你要做的就是把场景构建好,然后添加上适当的代码,一切就搞定了,当然中间的过程不可能像一句话说的这么简单。

一旦得到这样的图,制作游戏的推荐过程就是为图中列出的每个元素创建一个场景。使用实例化(通过代码或直接在编辑器中)实现从属关系。

在编程游戏(或一般软件)上花费的大量时间主要用于设计架构并使游戏组件适合该架构。基于场景的设计取代了这种方法,使开发更快、更直接,允许专注于游戏逻辑本身。因为大多数游戏组件直接映射到场景,所以使用基于场景实例化的设计意味着需要很少的其他架构代码。

我们来看看另一个更复杂的开放世界类游戏的示例,它有很多资源和嵌套元素:

../../_images/openworld_instancing.png

看看房间(Room)元素。 比方说,我们从这里开始。可以制作几个不同的房间场景,其中包括不同的家具(也包括场景)。之后,可以制作房屋(House)场景,连通房间以构成其内部。

然后,可以制作一个由许多实例化的房屋组成的城堡(Citadel)场景。接着,可以开始做世界地图地形(Terrain),并将城堡添加进去。

之后,可以创建代表守卫(和其他NPC)的场景,并将它们添加到城堡中。因此,它们将间接地添加到整个游戏世界中。

使用Godot,就可以很容易地像这样迭代您的游戏,因为您需要做的就是创建和实例化更多的场景。编辑器UI也被设计成对程序员和非程序员一样友好。一个典型的团队开发过程会涉及2D或3D美术工作者、关卡设计师、游戏设计师、和动画师,他们都可以这个编辑器界面工作。

Godot支持很多种语言,其中它自己创建的GDScript十分的简洁精练,类Python,有很多地方相较于C#更简洁,这也是脚本语言的特点,唯一的缺点就是可能效率不如C++这类语言高,但是很妙的是Godot支持我们使用C++来优化,这在很大一部分程度上弥补了这一缺点。

Godot的教程非常有条理,通过一个简单的实例,能让我们对建立节点、编写脚本有初步的认识。

下面记录一下学习过程中,我认为有必要以后巩固复习一下的重点。

get_node(path) 的工作原理:对于给定的节点,get_node(path) 搜索其直接子节点。若要搜索它子节点下的节点,则必须这样使用get_node(子节点名/要搜索的子节点的子节点名) ,更重要的是这个path指的是节点名而不是类型。

Godot可以将场景实例化到另一个场景中使用,感觉上比较像unity中的预设。

复制的快捷键是Ctrl-D。

以上就是这次学习的全部过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初识Godot(1)--初步使用Godot创建结点并使用脚本 的相关文章

随机推荐