实例(续)

扼要重述

实例有许多方便的用途。一目了然,通过实例,您可以:

  • 细分场景并使其更易于管理的能力。

  • 一种同时管理和编辑多个节点实例的工具。

  • 一种组织和嵌入复杂游戏流甚至是uis的方法(在godot中,ui元素也是节点)。

设计语言

但是,实例场景的最大优势在于它是一种优秀的设计语言。这将Godot与其他所有引擎区分开来。Godot是围绕这个概念从一开始就设计的。

当与Godot进行游戏时,建议的方法是摒弃最常见的设计模式,如MVC或实体关系图,而是以更自然的方式来考虑场景。从想象游戏中可见的元素开始,这些元素不仅可以由程序员命名,还可以由任何人命名。

例如,可以想象一个简单的射击游戏:

../../_images/shooter_instancing.png

你几乎可以为任何一种游戏设计出这样的图表。写下游戏中你可以看到的部分,然后添加箭头来表示一个组件对另一个组件的所有权。

一旦你有了这样的图表,制作游戏的推荐过程就是为图表中列出的每个元素创建一个场景。您将使用实例(通过代码或直接在编辑器中)处理所有权关系。

在编程游戏(或一般的软件)上花费的大量时间是设计一个体系结构,并将游戏组件安装到该体系结构上。基于场景的设计取代了这种方法,使开发变得更快、更简单,从而使您能够专注于游戏逻辑本身。因为大多数游戏组件直接映射到场景,使用基于场景实例化的设计意味着几乎不需要其他架构代码。

让我们再看一个更复杂的例子,一个具有大量资产和嵌套元素的开放世界型游戏:

../../_images/openworld_instancing.png

看看房间的元素。假设我们从那里开始。我们可以制作几个不同的房间场景,其中有不同的家具布置(也包括场景)。后来,我们可以做一个房子的场景,把房间连接起来,组成它的内部。

然后,我们可以制作一个城堡场景,它由许多实例房屋组成。然后,我们可以开始研究世界地图地形,在地图上加上城堡。

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

使用godot,很容易像这样迭代您的游戏,因为您需要做的只是创建和实例更多的场景。此外,编辑器用户界面设计为便于程序员和非程序员使用。典型的团队开发过程可以包括二维或三维艺术家、级别设计师、游戏设计师和动画师,所有这些都使用编辑器界面。

信息过载!

这是一次向你们提供的大量高级信息。然而,本教程的重要部分是建立一种意识,了解场景和实例是如何在实际项目中使用的。

一旦你开始制作游戏并将这些概念付诸实践,这里讨论的所有内容都将成为你的第二天性。现在,不要太担心,继续下一个教程吧!