返回 导航

Python / AI

hangge.com

Godot - 使用AI+MCP开发游戏教程1(godot-mcp作为MCP服务器)

作者:hangge | 2026-11-04 09:01
    我之前写过一篇关于 Godot 这个游戏引擎快速上手教程的文章(点击查看)。但游戏开发一直是个高门槛的活儿:既要会引擎操作,又要会写脚本,还要懂节点、信号、场景这些概念。不过现在有了 Claude Code 这样的 AI 编程助手,再配合 MCP(Model Context Protocol) 协议把 AI 和引擎直接连起来,我们用一句中文需求就能让 AI 自动创建节点、生成脚本、运行游戏、读取报错并自我修正,全程几乎不用碰一行代码。      
    本文我将演示如何搭建 "Godot + Claude Code + MCP" 这套 AI 游戏开发环境,并实战开发一个竖版打飞机游戏:包含只会直线俯冲的普通敌机、会朝玩家开火的会发射子弹的敌机(炮台敌机),以及拥有血条、多阶段弹幕的 Boss 战,所有代码全部由 AI 生成,并且不使用任何美术素材(纯色块 + 程序绘制),大家可以照着一步步复现。

一、基本介绍

1,Godot 是什么

(1)Godot 是一款完全免费、开源的游戏引擎(MIT 协议),由 Juan Linietsky 和 Ariel Manzur 发起,现在由 Godot Engine Foundation 基金会维护。它体积只有几十 MB(绿色单文件),却同时支持 2D 和 3D 游戏开发,并且可以一键导出到 Windows、macOS、Linux、Android、iOS 和 Web 平台。

(2)Godot 内置的脚本语言叫 GDScript,语法接近 Python,上手非常简单;同时它采用"节点(Node) + 场景(Scene) + 信号(Signal)"的组织方式,特别适合让 AI 理解和操作——这也是近两年 AI + Godot 工作流流行起来的原因。

2,为什么 AI + Godot 是绝配

(1)纯文本项目结构。Godot 的场景文件(.tscn)、项目配置(project.godot)都是纯文本格式,AI 助手可以直接读写,不需要操作复杂的二进制工程文件。

(2)脚本语法友好。GDScript 代码量小、结构清晰,是 AI 生成代码最"省 token"的游戏脚本语言之一。

(3)命令行可运行。Godot 支持 --headless 模式和命令行参数,AI 可以直接在终端里启动、运行项目并捕获报错输出,形成"生成 → 运行 → 看报错 → 修复"的完整闭环。

(4)最狠的是,通过 MCP 协议,AI 甚至能直接调用 Godot 编辑器的部分能力(创建场景、添加节点、启动编辑器),我们只需要用中文描述需求,剩下的交给 AI。

3,MCP 是什么

(1)MCP 全称 Model Context Protocol(模型上下文协议),是 Anthropic 公司在 2024 年 11 月推出的开放标准,它就像 AI 世界的"USB-C 接口":任何 AI 客户端(Claude Code、Cursor 等)都可以通过这个统一协议,连接任意的本地工具和数据源。

(2)在 Godot 开发场景里,MCP 的作用是:给 AI 提供 14 个可调用的 Godot 工具,比如 launch_editor(启动编辑器)、run_project(运行项目)、get_debug_output(抓取调试输出)等。AI 调用这些工具后能拿到真实的运行结果和报错信息,而不是"闭着眼睛"写代码。
提示:本文使用的 Coding-Solo/godot-mcp 是社区中最流行的免费 Godot MCP 服务器(MIT 协议、5000+ Star),它通过命令行方式驱动 Godot,不依赖编辑器插件,配置最简单,适合入门。

二、安装配置

1,安装 Godot 引擎

Godot 引擎的安装可以参考我之前的文章:

3,安装 Node.js

(1)MCP 服务器本质上是一个 Node.js 程序,通过 npx 命令运行,所以需要先安装 Node.js。访问官网 https://nodejs.org 下载 LTS 长期支持版(18.0.0 以上即可,推荐 20 或 22 LTS),一路默认下一步完成安装。

(2)安装完成后,打开新的命令行窗口,执行如下命令验证:
node -v
npm -v

4,安装 Claude Code

    Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手,我们整个开发流程都通过它来驱动。具体的安装步骤可以参考我之前写的文章:

5,安装配置 Godot MCP 服务器

(1)Godot MCP 的配置非常简单,Claude Code 提供了 claude mcp add 命令一键添加 MCP 服务器。打开命令行(建议进入项目目录),执行:
claude mcp add godot -- npx @coding-solo/godot-mcp

(2)如果注册成功但后续调用工具时报 Godot not found,说明 MCP 没能自动检测到 Godot 的安装位置,先删除再带上 GODOT_PATH 显式指定引擎路径(Windows 路径用正斜杠即可):
claude mcp remove godot
claude mcp add godot -e GODOT_PATH=D:/Godot/Godot_v4.7.2-stable_win64.exe -- npx @coding-solo/godot-mcp

(3)除了命令行方式,也可以手动编辑配置文件。用户级配置文件位于 mcp 配置 json(Windows 是 C:\Users\你的用户名\.claude.json),格式如下:
{
  "mcpServers": {
    "godot": {
      "command": "npx",
      "args": ["-y", "@coding-solo/godot-mcp"],
      "env": {
        "GODOT_PATH": "D:/Godot/Godot_v4.7.2-stable_win64.exe"
      }
    }
  }
}

(4)配置完成后,启动 Claude Code 并验证:
claude

(5)在 Claude Code 交互界面中输入 /mcp 命令,如果看到 godot 服务显示 connected 且工具数量不为 0,说明 Godot MCP 已经成功挂载。

(6)为了确认 AI 真的能"碰到"引擎,我们让它查一下 Godot 版本。在 Claude Code 对话框输入:
调用 get_godot_version 工具,告诉我当前 Godot 的版本号

(7)如果 AI 返回了版本号,则说明整条"AI → MCP → Godot"链路已经完全打通。

三、用 AI 开发一个打飞机游戏

1,创建游戏项目

(1)在 Godot 项目管理器中点击「新建项目」,命名为 plane_shooter,渲染方式保持默认。

(2)项目创建后,为了后文坐标方便,我们在「项目 → 项目设置 → 显示 → 窗口」中把视口宽高设置为 600x800:

2,布置总提示词

(1)打开命令终端,进入项目目录启动 Claude Code,然后把我们这个打飞机游戏的总需求一次性发给它:
请帮我开发一个 Godot 竖版打飞机游戏,要求如下:
 
1. 技术约束:
- 全部使用 GDScript,不使用 C#
- 不使用任何外部美术素材,玩家/敌人用内置 icon.svg 代替,子弹先用 ColorRect 代替
- 每个角色独立场景(.tscn)+ 独立脚本(.gd),放在 scenes/ 和 scripts/ 目录
- 分辨率 600x800(竖屏)
 
2. 玩家:
- 方向键/WASD 移动,限制在屏幕内
- 按住空格连射子弹(射速 0.15 秒一发)
- 3 条命,被击中后 2 秒无敌闪烁
 
3. 敌人(分三类):
- 普通敌机:从顶部随机 x 位置生成,直线向下俯冲,1 血,击毁 +10 分
- 炮台敌机:飞到顶部 1/4 处悬停,悬停持续5秒,期间每1.5秒朝玩家发射一发瞄准弹;
  悬停结束后继续向下飞出屏幕,2 血,击毁 +30 分
- Boss:每 500 分登场一次,从顶部进入后左右巡航,30 血,顶部显示血条;
  每隔 2 秒朝下方扇形发射 5 发子弹;血量低于 50% 后扇形加密为 9 发、间隔缩短为 1.2 秒;
  击毁 +200 分,屏幕上所有敌弹清除
 
4. 界面:
- 左上角显示分数(Score)和剩余生命(Lives)
- 游戏结束后显示 Game Over 和"按 R 重新开始"
 
5. 实现完成后:
- 检查所有场景的碰撞层设置(玩家子弹 layer 2、敌方子弹 lay

(2)发送后,Claude Code 会开始自主工作:调用 create_scene、add_node 等 MCP 工具创建场景结构,再逐个生成 GDScript 脚本。整个过程通常持续几分钟,期间它可能会请求我们确认文件写入,按提示允许即可(也可以输入 accept edits / 全部允许 让它全自动执行)。最终生成的项目文件如下:

2,运行游戏与 AI 自测

(1)代码生成完毕后,我们不用自己打开 Godot 按 F5。而是直接告诉 Claude Code 让它用 MCP 工具运行:
用 run_project 运行游戏,然后把 get_debug_output 的输出发给我,
如果有报错或警告请自动修复后再次运行验证

(2)Claude Code 会调用 run_project 启动游戏窗口,稍等几秒再调用 get_debug_output 抓取输出。如果输出里出现 ERROR 或 WARNING 字样,它会自动定位到对应脚本、修改代码并重新运行,直到输出干净为止——这就是 AI 闭环开发的完整体验。

(3)确认无报错后,我们手动试玩验证玩法:移动是否顺滑、炮台敌机的瞄准弹是否有威胁、Boss 血条与狂暴是否生效。试玩中发现任何问题(比如"炮台弹速太快""Boss 血条挡住子弹"),直接用中文反馈给 Claude Code,让它改到满意为止:
试玩反馈:
1. 炮台敌机的子弹速度太快了,降低 30%
2. Boss 血条放得太靠下,会挡住它的碰撞体,移到它头顶上方 40 像素处
评论

全部评论(0)

回到顶部