Godot 零基础入门教程:从安装到发布你的第一款游戏

6 阅读8分钟

本教程面向完全零基础的初学者,手把手带你从零开始学习 Godot 游戏引擎,最终完成一款可运行的小游戏。


目录

  1. 什么是 Godot?
  2. 安装与环境配置
  3. 认识 Godot 编辑器界面
  4. 核心概念:节点与场景
  5. 第一个项目:角色移动
  6. 添加物理与碰撞
  7. UI 界面制作
  8. 音效与背景音乐
  9. 打包发布游戏
  10. 学习资源推荐

什么是 Godot?

Godot Engine 是一款免费、开源的 2D 和 3D 游戏引擎,采用 MIT 许可证发布。这意味着你可以完全免费使用它来开发商业游戏,无需支付任何版税。

为什么选择 Godot?

特点说明
🆓 完全免费开源(MIT 协议),无隐藏费用
📦 轻量级完整安装仅约 100MB
🔧 GDScript类 Python 的脚本语言,极易上手
🎮 2D + 3D同时支持 2D 和 3D 游戏开发
🌍 多平台导出一键导出至 Windows、macOS、Linux、Android、iOS、Web 等
👥 活跃社区丰富的文档、教程和第三方资源

GDScript 是什么?

GDScript 是 Godot 的官方脚本语言,语法非常类似 Python。如果你有 Python 基础,上手 GDScript 几乎零门槛。即使没有编程经验,GDScript 也是最友好的入门语言之一。

# 这是一段简单的 GDScript 代码示例
func _ready():
    print("Hello, Godot!")

func _process(delta):
    # 每帧都会执行的逻辑
    if Input.is_action_pressed("ui_right"):
        position.x += 200 * delta

安装与环境配置

第一步:下载 Godot

  1. 访问官网:godotengine.org/
  2. 点击 Download 按钮
  3. 选择 Standard version(标准版本,约 100MB)
  4. 根据你的操作系统下载对应版本:
    • Windows:下载 .exe 安装包
    • macOS:下载 .zip.dmg
    • Linux:下载 64-bit 版本

第二步:安装

Windows:

  • 双击下载的安装包
  • 选择安装路径(建议使用英文路径,如 D:\Godot
  • 点击安装即可

macOS:

  • 打开下载的 .dmg 文件
  • 将 Godot 拖入 Applications 文件夹

Linux:

  • 解压下载的压缩包
  • 运行其中的可执行文件

第三步:启动并创建项目

  1. 双击打开 Godot
  2. 首次启动会看到项目管理器窗口
  3. 点击右上角 「新建」 按钮
  4. 设置项目名称(如 my_first_game
  5. 选择项目保存路径
  6. 渲染器选择
    • 2D 项目选 Compatibility(兼容模式)
    • 3D 项目或需要高级效果选 Forward+
  7. 点击 创建并编辑

🎉 恭喜!你已经成功创建了第一个 Godot 项目!


认识 Godot 编辑器界面

打开项目后,你会看到 Godot 的主编辑器界面。让我们认识各个区域:

┌─────────────────────────────────────────────────────┐
│  工具栏 (Toolbar)                                   │
├──────────┬──────────────────────┬───────────────────┤
│          │                      │                   │
│ 场景      │    视图 (Viewport)   │   检查器           │
│ 树        │    (2D/3D 编辑区)     │   (Inspector)     │
│ (Scene)  │                      │                   │
│          │                      │                   │
│          ├──────────────────────┤                   │
│          │    文件系统           │                   │
│          │    (FileSystem)      │                   │
├──────────┴──────────────────────┴───────────────────┤
│  输出 (Output)                                       │
└─────────────────────────────────────────────────────┘

各区域功能说明

区域功能快捷操作
场景树 (Scene)显示当前场景中所有节点的层级关系拖拽调整层级、双击定位
视图 (Viewport)可视化编辑区域,预览游戏画面F1-F5 切换不同视角模式
检查器 (Inspector)编辑选中节点的属性直接修改数值、颜色等
文件系统 (FileSystem)管理项目中的所有文件双击打开场景/脚本
输出 (Output)显示调试信息、错误提示重要排错工具

常用快捷键

快捷键功能
Ctrl+S保存当前场景
Ctrl+D复制选中节点
Delete删除选中节点
F5运行游戏
F6运行当前场景
F11全屏切换视图
Ctrl+Z撤销
Ctrl+Shift+Z重做

核心概念:节点与场景

理解**节点(Node)场景(Scene)**是掌握 Godot 的关键!

节点(Node)

节点是 Godot 中最基本的构建单元。一切皆节点——角色、地图、相机、声音、UI 按钮……都是节点。

Godot 提供了丰富的内置节点类型:

节点类型用途常见子类
Node2D2D 空间中的节点基类Sprite, AnimatedSprite2D
CharacterBody2D角色物理体玩家角色、NPC
RigidBody2D受物理影响的物体石头、箱子、子弹
Area2D检测区域触发器、伤害范围
Camera2D相机跟随视角控制
ControlUI 控件基类Button, Label, Panel
AudioStreamPlayer2D2D 音效播放音效、BGM

场景(Scene)

场景是由一组节点组成的、可复用的组件。可以把场景理解为:

场景 = 一个完整的"零件",可以独立存在,也可以被其他场景引用

例如:

  • player.tscn —— 玩家角色场景
  • enemy.tscn —— 敌人场景
  • coin.tscn —— 金币场景
  • main.tscn —— 主场景(组装所有零件)

场景树(Scene Tree)

当游戏运行时,所有场景实例化为节点,组成一棵场景树

Main (根节点)
├── Player (玩家)
│   ├── Sprite (外观)
│   ├── CollisionShape2D (碰撞体)
│   └── Camera2D (相机)
├── TileMap (地图)
├── UI (界面)
│   ├── ScoreLabel (分数显示)
│   └── HealthBar (血条)
└── BGM (背景音乐)

第一个项目:角色移动

让我们动手做一个最基础但完整的功能——用键盘控制角色在屏幕上移动!

步骤 1:创建玩家场景

  1. 在场景树中点击 "+" 添加根节点
  2. 搜索并选择 CharacterBody2D
  3. 将其重命名为 Player
  4. Ctrl+S 保存场景为 player.tscn

步骤 2:添加外观

  1. 右键点击 Player 节点 → 添加子节点
  2. 添加 Sprite2D 节点
  3. 在 Inspector 中找到 Texture 属性
  4. 点击下拉菜单 → 新建 Sprite2D新建 RectangleTexture2D(先用矩形代替图片)
  5. 设置 Size 为 (32, 32),Color 为你喜欢的颜色

💡 提示:你也可以直接拖拽一张 PNG 图片到 FileSystem 面板,然后将其指定给 Sprite2D 的 Texture 属性。

步骤 3:添加碰撞体

  1. 右键 Player → 添加子节点
  2. 添加 CollisionShape2D
  3. 在 Inspector 中找到 Shape 属性
  4. 选择 新建 RectangleShape2D
  5. 调整 Size 为 (32, 32)(与外观一致)

步骤 4:编写移动脚本

  1. 选中 Player 节点
  2. 在 Inspector 右侧点击 **「附加脚本」**按钮(脚本图标)
  3. 保持默认设置,点击 创建

将以下代码写入脚本:

extends CharacterBody2D

# 移动速度(每秒像素数)
@export var speed: float = 200.0

# 重力(用于跳跃)
@export var jump_force: float = -400.0

# 重力加速度
const GRAVITY = 980.0

func _physics_process(delta):
    # 应用重力
    velocity.y += GRAVITY * delta
    
    # 获取水平输入
    var direction = 0
    if Input.is_action_pressed("ui_left"):
        direction -= 1
    if Input.is_action_pressed("ui_right"):
        direction += 1
    
    # 应用水平速度
    velocity.x = direction * speed
    
    # 跳跃检测
    if is_on_floor() and Input.is_action_just_pressed("ui_up"):
        velocity.y = jump_force
    
    # 移动角色
    move_and_slide()
    
    # 翻转角色朝向
    if direction != 0:
        $Sprite2D.flip_h = direction < 0

步骤 5:测试运行

F5 键运行游戏!你应该能用方向键左右移动角色,按上键跳跃。

如果角色掉出屏幕,那是因为我们还没加地面——接下来就来做!


添加物理与碰撞

创建地面

  1. 回到主场景(main.tscn),确保根节点是 Node2DNode
  2. 添加 StaticBody2D 节点,命名为 Ground
  3. 为 Ground 添加子节点 CollisionShape2D
  4. Shape 设为 RectangleShape2D,Size 设为 (960, 100)
  5. Position 设为 (480, 550)(屏幕底部居中)

为了让地面可见,可以再添加一个 ColorRectSprite2D 作为视觉表示。

创建平台

重复上述步骤,创建几个浮空的 StaticBody2D 作为平台,让角色可以跳上去。

测试

再次按 F5 运行,现在角色应该能站在地面上,并且可以在平台之间跳跃了!


UI 界面制作

游戏怎么能没有 UI?让我们添加分数显示和生命值。

添加分数标签

  1. 在主场景中添加 CanvasLayer 节点(用于 UI 层级管理)
  2. 在 CanvasLayer 下添加 Control 节点,命名为 UI
  3. 在 UI 下添加 Label 节点,命名为 ScoreLabel
  4. 在 Inspector 中设置:
    • Text: "分数: 0"
    • Position: (10, 10)
    • 字体大小可以通过 Theme 自定义

添加血条

  1. 在 UI 下添加 ProgressBar 节点,命名为 HealthBar
  2. 设置 Position 为 (10, 50)
  3. 设置 Size 为 (200, 20)
  4. 设置 Max Value 为 100,Value 为 100

用脚本更新 UI

在主场景的脚本中连接 UI 更新逻辑:

extends Node2D

@onready var score_label: Label = $UI/ScoreLabel
@onready var health_bar: ProgressBar = $UI/HealthBar

var score: int = 0
var health: int = 100

func add_score(points: int):
    score += points
    score_label.text = "分数: " + str(score)

func take_damage(damage: int):
    health -= damage
    health_bar.value = max(0, health)
    if health <= 0:
        game_over()

func game_over():
    get_tree().reload_current_scene()  # 重新开始

音效与背景音乐

没有声音的游戏是没有灵魂的!Godot 让添加音频变得非常简单。

准备音频文件

支持格式:.wav, .mp3, .ogg

推荐使用 .ogg 格式(体积小,质量好)。

添加背景音乐

  1. 在主场景中添加 AudioStreamPlayer 节点,命名为 BGM
  2. 在 Inspector 的 Stream 属性中选择你的音乐文件
  3. 设置 Volume Db(-10 到 0 之间比较合适)
  4. 勾选 Autoplay(自动播放)

添加音效

  1. 在 Player 节点下添加 AudioStreamPlayer 节点,命名为 JumpSound
  2. 指定跳跃音效文件
  3. 在跳跃代码中触发播放:
if is_on_floor() and Input.is_action_just_pressed("ui_up"):
    velocity.y = jump_force
    $JumpSound.play()  # 播放跳跃音效

收集免费音效资源


打包发布游戏

游戏做好了,怎么分享给朋友?Godot 支持一键导出到多个平台!

导出设置

  1. 点击顶部菜单 项目 → 导出...
  2. 点击 添加... 选择目标平台:
    • Windows: 选 Windows Desktop
    • macOS: 选 macOS
    • Web: 选 Web(可在浏览器中运行!)
  3. 选择后会要求填写调试密钥(首次使用时 Godot 会自动生成)

导出 Windows 版本

  1. 在导出面板中选择 Windows Desktop
  2. 设置 导出路径(如 export/my_game.exe
  3. 点击 导出项目 按钮
  4. 等待完成,去文件夹找到 exe 文件就能运行了!

导出 Web 版本(超酷!)

  1. 添加 Web 导出模板
  2. 点击 导出项目
  3. Godot 会生成一个包含 HTML 文件的文件夹
  4. 你可以将它部署到 GitHub Pages 或任何静态网站托管服务
  5. 分享链接,朋友可以直接在浏览器里玩你的游戏!

⚠️ 注意:首次导出某平台时,需要在 管理导出模板 中下载对应的导出模板。


学习资源推荐

官方资源

资源链接说明
📖 官方文档docs.godotengine.org最权威的参考手册
🎬 官方演示YouTube "Godot Official"官方出的教程视频
💬 官方 Discorddiscord.gg/godotengine全球开发者社区

中文资源

资源链接说明
🇨🇳 中文文档docs.godotengine.org/zh_CN官方中文翻译版
📺 B站教程搜索 "Godot 教程"大量优质中文视频教程
📱 微信公众号搜索 "Godot"多个中文社区公众号

推荐学习路线

第1周:熟悉界面 + GDScript 基础语法
    ↓
第2周:完成 2D 平台跳跃游戏原型
    ↓
第3周:学习粒子效果、动画、Tween 动画
    ↓
第4周:完善游戏(UI、音效、存档、关卡切换)
    ↓
第5周:打包发布 + 尝试 3D 基础
    ↓
持续进阶:着色器(Shader)、网络多人、自定义插件...

总结

恭喜你完成了 Godot 零基础入门教程!回顾一下我们学到的内容:

✅ Godot 引擎的安装与项目创建
✅ 编辑器界面的各个区域
✅ 节点与场景的核心概念
✅ 角色移动与物理碰撞
✅ UI 界面制作
✅ 音效与背景音乐
✅ 打包发布到多平台

记住:最好的学习方法就是动手做!不要只是看教程,一定要跟着一步步敲代码、做项目。遇到问题不要怕——查阅官方文档、搜索社区问答、在论坛提问,这些都是成长的过程。

🎮 现在,去创造属于你的游戏世界吧!


本文基于 Godot 4.x 版本编写,部分 API 可能与 3.x 有所不同。如有疑问,请以官方最新文档为准。

作者原创,转载请注明出处。