你有没有想过是什么让《荒野大镖客》中的亚瑟·摩根如此具有标志性?对我来说,当我在一个我永远无法实时体验的时代玩游戏时,就会产生一种怀旧的感觉。这是幻想的魔力,这也是促使我创建最根深蒂固的 2D RPG 游戏教程系列的原因,该系列仅使用 Godot 4 和 GDScript 制作。本教程系列旨在教你如何从头到尾制作游戏,并最终向你展示作为 Godot 开发人员初学者需要了解的所有内容!

那么我们将要创建的这款游戏究竟是什么呢?Dusty Trails 是一款西部风格的狂野西部 RPG,玩家可以在整个地图上奔跑,同时射击和掠夺敌人并完成任务。敌人会随机出现,如果靠近玩家,他们会四处游荡并追逐玩家。我们还将有 NPC 和店主,他们会为玩家提供任务并向玩家出售拾取物品。

1.jpg

图 1:我们的游戏和实体的概览。

什么是 RPG?

RPG(角色扮演游戏)是一种电子游戏类型,玩家在虚构的场景中扮演角色。玩家负责在叙事中扮演这些角色,无论是通过文字表演还是通过有关角色发展的结构化决策过程。RPG

通常涉及故事叙述、世界构建和角色发展。

本系列教程将涵盖以下方面:

  • 玩家动画、动作和统计数据
  • 完整的游戏UI
  • 拾取器和耗材
  • 敌人运动、动画和统计数据
  • 敌人随机游走和生成
  • 随机掉落战利品
  • 玩家和敌人的死亡、伤害和攻击
  • 经验和升级
  • 带有任务的基本可定制NPC
  • 场景转换(位置改变)
  • 游戏音乐和音效
  • 持久保存、暂停和加载系统
  • 带碰撞和摄像头的游戏地图
  • 简单店主
  • 项目导出

请注意,本教程系列适用于初级 GDScript 和 Godot 开发人员。此外,本教程使用Godot 版本 4.1.1 — 因此,如果您在使用较新版本时遇到错误,请不要惊慌,因为这可能会发生。我会尝试尽可能多地更新此项目以使用较新版本的 Godot。我还会在各个章节的末尾将分段源代码链接到每个部分,以便您可以轻松地将项目的代码与您的代码进行比较。

您将在本部分中学习到的内容:

  1. 如何浏览 Godot 编辑器。
  2. 如何更改项目设置以及使用节点属性。
  3. 如何创建场景。
  4. 如何向场景添加节点。

编辑概述

在我们开始疯狂地编写代码之前,我们首先需要了解 Godot 编辑器的布局。如果您已经熟悉编辑器,则可以跳至本部分的项目设置部分,但如果不熟悉,我建议您和我一起浏览编辑器。

2.jpg

如果你还没有安装 Godot,请前往他们的网站下载可用的最新版本。下载完成后,解压文件,由于 Godot 不需要任何安装,你可以直接将其拖到你希望存储在计算机上的位置 — 或者直接从下载文件夹中打开它。

3_gUVUQamJRvUWLIXn8Ro0Nw.jpg

启动可执行文件,您将看到项目管理器窗口。在这里您可以创建新项目、加载现有项目或扫描整个目录以导入多个项目。

4_gIOScMyYipmslqA9UDZvKw.jpg

在顶部,您将看到一个名为“资产库项目”的菜单。在这里,您可以下载和查找社区成员为 Godot 制作的项目、模板或演示。它类似于其他在线市场,例如 Itch.io、Unreal Marketplace 或 Unity Asset Store。唯一的区别是这里的一切都是免费的。

5_vHIVNOakGSyKciC3tZQI8g.jpg

要创建项目,我们将点击“新项目”,然后会出现一个窗口,我们将在其中选择项目的保存位置并为其命名。我将我的项目命名为 Dusty Trails,但您可以随意命名。

渲染模式有哪些?

  1. Forward+ 模式,适用于图形和渲染更密集的更高级的游戏项目。
  2. 移动模式,一般用于手机游戏。
  3. 兼容模式使用与 Godot 3 相同的渲染器,这意味着图形和渲染质量较低,因此更适合较旧或规格较低的设备。

您可以在兼容模式或 Forward+ 模式下启动游戏 - 这取决于您的图形驱动程序是否支持 Godot 提供的 Vulkan 版本。您可以在此处阅读有关新渲染更新的更多信息。

选择“创建和编辑”,您将神奇地进入项目窗口。顶部是工作区,这是我们完成任务的空间。默认情况下,3D 将始终处于活动状态。如果单击其他选项,则可以在不同的工作区之间切换。

7_mYbocY2AnVpCLU1koe1aWw.jpg

8_JhWxUA6JkYrR-ScXzoAc3Q.jpg

图 2:工作场所导航的鼠标输入

工作区有何用途?

  • 2D 工作区用于编辑和查看 2D 游戏的 2D 场景。
  • 3D 工作区用于编辑和查看 3D 游戏的 3D 场景。
  • 脚本 工作区是我们编写、编辑和查看脚本的代码编辑器。

Asset工作区是您可以在 项目中免费使用的资产库项目。

窗口左侧的面板是场景停靠栏。它列出了您当前打开的场景的内容,您还可以在此停靠栏中向场景添加新节点。Godot 中的场景是节点的主要持有者或容器,而节点是游戏的主要构建块。

9.jpg

不同的节点有不同的功能,例如,碰撞形状和动画精灵各有其用途,因此能够将它们组合在一个单一的场景中使我们能够为游戏创建具有更复杂功能的组件。场景还可以实例化其他场景,例如,在您的世界场景中拥有敌人场景。我建议您去看看 Godot 文档中的节点和场景。

什么是场景和节点? 场景是一个容器,用于容纳按层次结构排列的节点集合(例如我们的玩家或敌人)。节点是场景中构成场景的基本单元(例如场景中的Sprite 或相机)。

10.jpg

图 3:节点和场景的示例。点击此处查看在线版本。

另一个面板称为“导入”,您可以在此设置或编辑已添加到项目文件夹的资产(例如图像、字体和音频文件)的属性,然后可以使用保存的这些属性重新导入它们。

11.jpg

在场景和导入面板下方,您将看到文件系统面板,您可以在此管理项目文件、文件夹和资产。您可以将新资产拖到此面板以将其导入项目,以及添加新文件夹、脚本、场景等。

12.jpg

窗口右侧的面板称为检查器面板,您可以在其中查看和编辑当前选定节点的属性。

13.jpg

旁边的节点面板是您可以连接信号并向节点添加组的地方。组可用于将场景或节点类型分组在一起,例如我们的 NPC,以便我们的玩家知道如何与这些节点交互。信号可用于许多情况,例如,通知游戏已按下按钮或动画已播放完毕。这使我们能够告诉游戏在发生某些事件时该做什么。大多数节点都有内置信号,例如按钮和动画播放器,但我们也可以创建自己的自定义信号。我们稍后会更深入地解释这些概念。

14.jpg

15.jpg

图 4:自定义信号(左)和内置信号(右)。点击此处查看在线版本。

在 Inspector 和 Node Dock 上方,您将看到用于播放、暂停、重新启动或停止场景的选项。我们将在这里启动游戏进行测试。

16.jpg

在编辑器窗口的底部,有输出面板、调试器控制台、音频混音器、搜索结果面板以及动画和着色器编辑器。默认情况下,它们处于折叠状态以节省屏幕空间,但如果您单击它们,它们将最大化。某些可自定义的节点(例如图块地图或动画播放器节点)将向此窗口添加新选项。

17.jpg

18.jpg

让我们回顾一下每个现有的选项:

  • 输出 控制台将返回我们添加到代码中用于测试的打印消息或通知。
  • 调试器 控制台用于(您猜对了)调试和错误处理。
  • 音频 混音器用于编辑音频文件。
  • 动画 编辑器用于为动画播放器节点创建动画。

在上方的功能区或菜单栏中,您有几个选项。您可以在“场景”选项卡下管理场景。可以添加、保存、打开或关闭场景。

19.jpg

您可以在“项目”选项卡下管理项目设置和属性(例如输入操作、窗口大小、自动加载单例等)。您也可以从这里退出“项目管理器”窗口。这也是我们将从这里导出项目的地方。

20.jpg

您可以在“调试”选项卡中启用或禁用调试工具,例如,使碰撞可见,以便您可以看到碰撞事件是否在游戏过程中执行。

21.jpg

编辑器选项卡允许您更改与编辑器相关的设置,例如,您可以更改其当前布局或主题。您甚至可以截取当前窗口的屏幕截图。

22.jpg

最后,帮助选项卡可让您快速访问 Godot 4 文档和社区论坛。如果您对使用编辑器感到更自在,我们可以继续设置我们的项目。

23.jpg

项目设置

在开始一个项目之前,我通常会列出制作游戏需要采取的步骤(或检查表)。这通常只是一个大纲,在实际制作游戏的过程中,我会对这些步骤进行不同的修改。

关于游戏开发,有一件事要记住,那就是这不应该是一段线性的旅程。每个人的做法都不一样,但如果你对我的步骤通常是什么样子感兴趣,你可以在这里查看 Dusty Trails 项目步骤的示例,并将其用作你自己游戏的样板(或者不这样做,这 100% 取决于你)。我还为这款游戏使用了我在网上找到的这个调色板,以防你想知道我的配色方案值从哪里来!

现在开始设置。本节所需的资产可在此处下载。这些免费资产的来源可在我的GitHub 存储库中找到。下载资产后,提取文件并将其拖到文件系统面板中。我们还可以继续删除项目中存在的默认 icon.svg 和 README.MD 文件。

24.jpg

右键单击面板,然后创建三个新文件夹:Scenes、GUI 和 Scripts。Scenes 文件夹将包含我们所有的 .tscn 文件(玩家场景、NPC 场景、地图场景等),Scripts 文件夹将包含我们所有的 .gd 文件,GUI 文件夹将包含我们所有的 UI 元素场景(菜单、弹出窗口、HUD 等)。

25.jpg

26.jpg

在 Scenes 文件夹中,让我们创建第一个场景,即主场景。主场景将作为游戏元素的核心容器。在这里,我们将添加地图、角色和物品,以便玩游戏。主场景也是游戏启动时自动运行的场景。

要添加场景,您可以右键单击 FileSystem 面板并像我们添加文件夹一样添加它,或者您可以单击 Scene Dock 中的加号图标。这是更快捷的方法,因此从现在开始我将以这种方式进行操作。

27.jpg

您将看到它会提示您选择一个节点。您在此处选择的节点将是根节点或父节点。根节点是树结构中的最高节点,没有父节点。

我们以后可以随时更改此节点,所以如果您选错了也不必担心!我们需要选择Node2D作为根节点。Node2D 节点是 2D 游戏的基础节点。我们通常在主场景中使用此节点。

28.jpg

您还可以在场景面板中的“2D 场景”选项中自动选择此节点作为您的根节点。

29.jpg

现在您将看到 Node2D 节点已添加为我们的根节点,但我们的场景尚未保存。在上面的“场景”菜单中保存它或使用快捷键 CTRL + S。将场景保存为“场景”文件夹中的“主”场景。

30.jpg

31.jpg

双击 Node2D 根节点以重命名它。为了简单起见,我们将其重命名为与场景名称匹配的名称。

32.jpg

现在我们可以将子节点添加到根节点。您可以再次通过加号图标执行此操作。请记住,我们正在制作 2D 游戏,因此以“3D”结尾的节点将无法与我们的节点一起使用!现在让我们添加一个 Sprite2D 节点,因为我想向您展示一些东西。请注意,您添加的任何节点都将添加到节点菜单中的最近面板中,因此您下次可以轻松地从那里选择它,而无需搜索它!

33.jpg

34.jpg

35.jpg

在 2D 工作区中(因为我们在制作 2D 游戏),选择您的 Sprite2D 节点,然后按键盘上的 F 键将焦点放在所选节点上。选择节点后,在检查器面板中,您将看到纹理选项。这是我们精灵的图像。

36.jpg

如果您进入资产文件夹,您可以将任何您想要的图像拖到该纹理属性中。

37.jpg

如果你放大你的精灵,你可能会注意到它有点模糊。这可不行,但幸运的是,我有一个解决办法。

38.jpg

在项目设置选项中的“项目”>“项目设置”下,将纹理渲染从“线性”更改为“最近”。这将扩大我们的纹理渲染,以便图像资产始终保持高质量。

什么是纹理过滤?

  • 纹理过滤是计算机图形学中使用的一种技术,用于在纹理应用于 3D 模型或 2D
  • 图像时改善纹理的外观。当纹理被缩放、旋转或以其他方式变换时,它变得尤为重要。
  • 选择正确的纹理过滤模式对于提高 2D 和 3D 图形的图像质量、性能和整体视觉体验至关重要。

39.jpg

你的精灵现在应该很清晰了。

40.jpg

这部分我们需要做的最后一件事是设置我们的主场景。在项目设置中的“应用程序”>“运行”下,您可以将主场景设置为我们新创建的场景。这样,每当我们运行游戏时,这个场景就会运行。稍后,我们将把它改为菜单场景,因为您希望玩家看到开始菜单,而不是直接进入游戏。

41.jpg

恭喜,您已经学会了如何浏览 Godot 编辑器,以及如何使用节点和场景 - 这是您在整个游戏过程中将使用的核心基础。为您的项目创建自己的GitHub 存储库将是一个很好的做法,这样您就可以定期备份您的项目。

在下一部分中,我们将设置我们的游戏角色,即我们的玩家,并添加在游戏中移动它们的功能。这意味着更多的节点,你将第一次使用脚本!记得保存你的游戏项目,下一部分见。

标签: Godot, 2D游戏

添加新评论