零代码做 3D 游戏这几年已经从演示性质的技术片段,变成一条可以实际操作的开发路径。支撑这条路径的三个关键点正好是:MCP(Model Context Protocol)协议、Claude 这个 AI 编程助手,以及像 Higgsfield 这套课程一样把两者串起来的实战方法。MCP 解决的是大模型无法直接读文件、操作工具、调用引擎的问题;Claude 负责把自然语言需求拆解成具体动作;Higgsfield 课程则给出了一个明确练习目标:用零代码方式做出三款可运行的 3D 游戏。本文会按这条主线展开,先讲清 MCP 的工作原理,然后从安装 Claude Code、配置 MCP 服务器开始,逐步完成三款 3D 小游戏:太空跑酷、迷宫寻宝、弹跳球。文章会覆盖配置文件、提示词、验证方法和排查路径,保证每一步都能对着做、出结果。
1. 零代码不是不用代码,而是建立一条“MCP + Claude”的生产链路
1.1 零代码的准确含义:用户不写代码,代码仍然需要被生成
很多人第一次接触“零代码做 3D 游戏”时会有一个误解,以为游戏项目里完全没有代码文件。这个理解是错的。3D 游戏无论用什么方案实现,底层都需要脚本、渲染逻辑、碰撞计算和输入处理,这些本质上都是代码。真正的区别在于:这些代码不再需要你亲手写。
零代码模式下的工作方式是你描述需求,AI 生成代码并写入项目文件,再由你运行和验证。比如你想做一款太空跑酷游戏,只需要说“做一个 3D 跑酷,玩家左右躲避障碍,撞到就结束”,Claude 会自行补全技术选型、代码结构、碰撞逻辑和界面布局。你看到的是游戏,看不到的是背后被生成出来的 JavaScript、HTML 或者构建脚本。
搞清这个概念非常重要,因为后面所有排查工作,其实都在检查 AI 生成的代码是否符合预期。如果你把“零代码”理解成“完全不用关心代码”,遇到游戏没有障碍物、点击没反应、页面白屏时会不知道从哪里查起。
1.2 MCP 协议是什么:让 AI 能操作外部工具的统一接口
MCP 的全称是 Model Context Protocol,是一套开放协议,用来给 AI 模型提供上下文和外部工具能力的标准化接口。一句话理解:它解决的是“模型和外部工具之间连接方式不一致”的问题。
可以把 MCP 理解为 AI 世界的 USB 接口。USB 统一了设备连接方式,让电脑不需要针对每款设备重新设计转接口;MCP 则统一了大模型调用外部工具的方式,让 Claude 不用针对文件系统、游戏引擎、数据库分别学习一套私有调用逻辑。只要有对应的 MCP 服务器,Claude 就能通过标准请求发现工具、调用工具、获得执行结果。
MCP 中有几个核心角色:
- 模型:负责理解用户需求、拆解任务、决定调用哪个工具。
- MCP 客户端:运行在 Claude Code 内部,负责把模型发起的工具请求转发给服务器。
- MCP 服务器:执行真实操作,可以是读写文件、运行命令、操作游戏引擎,也可以是在线资源接口。
在 3D 游戏场景里,MCP 服务器的数量决定你能做什么。比如文件系统 MCP 让 Claude 有权限创建和修改项目文件,引擎类 MCP 让 Claude 能直接操作 Three.js 场景或 Unity 项目,素材类 MCP 让 Claude 能获取模型、贴图和音频。
1.3 从对话到 3D 游戏:全链路数据流
把整个过程拆开看,零代码生成 3D 游戏是一条非常清晰的数据链路:
- 你向 Claude 输入自然语言需求。
- Claude 理解需求后,将任务拆解为多个子任务。
- Claude 在可用工具列表中选择合适的 MCP 工具。
- MCP 客户端把工具请求转发给对应服务器。
- MCP 服务器执行真实操作,比如创建目录、写入 HTML、安装依赖、启动服务。
- 执行结果返回给 Claude。
- Claude 根据结果判断下一步动作,直到所有子任务完成。
这条链路里,用户只负责第 1 步和最终验证,中间步骤全部由 Claude 和 MCP 协作完成。这也就是为什么很多人把这种模式叫作“代理式开发”:AI 不只是给你建议,而是真的替你把事情做完。
实际练习时你会发现,需求描述得有多清楚,结果就有多稳定。后面三款游戏的提示词都会按照这个思路设计,把技术栈、玩法、场景、失败条件和验证方式写清楚。
1.4 为什么要用 Claude Code 而不是网页版 Claude
如果你只用过网页版 Claude,可能会觉得它已经很擅长写代码,为什么还要单独安装一个命令行工具?原因在于网页版运行在云端封闭环境里,它能生成代码片段,但不能在你的项目目录里创建文件、执行 npm 命令、启动本地服务器。它可以给你一段可以运行的代码,却不能替你完成“把代码放对位置并跑起来”这件事。
Claude Code 是命令行形态的编程代理工具,它可以读取当前项目、执行终端命令、调用 MCP 服务器,并且能在一个会话里持续操作文件。零代码做 3D 游戏的过程中,Agent 要反复创建文件、修改脚本、安装依赖,这些动作都必须发生在本地环境,所以 Claude Code 是比网页版更合适的载体。
还有一个细节值得注意:Claude Code 本身就支持 MCP 客户端功能,这也是它能连接外部工具的原因。你要在本地开发机安装它,然后用自然语言和它协作,而不是把它当成一个聊天窗口。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:安装 Claude Code 并完成 MCP 服务器配置
2.1 环境检查清单
正式开始前,先检查本机环境。下面的表格列出常见项目的建议要求,以你实际操作时确认到的版本为准:
| 检查项 | 建议要求 | 说明 |
|---|---|---|
| Node.js | 18 或更高 | Claude Code 和多数 MCP 服务器基于 Node 运行 |
| npm | 与 Node 版本配套 | 用于全局安装和 npx 启动 MCP 服务器 |
| 操作系统 | Windows 10/11、macOS、Linux | 本文命令以 macOS/Linux 为主,Windows 下可使用 PowerShell 等价写法 |
| 网络 | 能正常访问 npm 仓库和 Claude 服务 | MCP 工具包多数从 npm 拉取 |
| 磁盘空间 | 预留 5GB 以上 | 引擎依赖、生成文件、临时缓存都会占空间 |
检查环境的命令:
bash复制node --version
npm --version
如果在命令窗口看到正常版本号,再继续安装 Claude Code。如果提示 command not found,先安装 Node.js 并重启终端。
2.2 安装 Claude Code 与登录
Claude Code 目前以 npm 包形式分发。安装命令:
bash复制npm install -g @anthropic-ai/claude-code
claude --version
这里容易出现第一个坑:npm 全局安装目录没有写权限时,会看到 EACCES: permission denied 之类的报错。此时不要直接 sudo npm install -g,更推荐用 nvm 管理 Node,或者把 npm 的全局路径改到当前用户目录。安装完成后执行 claude 会进入交互式对话界面,按提示完成登录授权。
注意:执行
claude --version时如果提示“无法将 claude 项识别为 cmdlet、函数、脚本文件”,通常是因为全局安装目录不在环境变量 PATH 中。先确认 npm 全局 bin 目录,再把它加入 PATH。
2.3 找到正确的 MCP 配置文件
Claude Code 支持在不同层级配置 MCP 服务器。常见的配置位置有:
- 项目级配置:项目根目录下的
.mcp.json,只对当前项目生效。 - 用户级配置:用户主目录下的
~/.claude.json或claude_desktop_config.json。 - 项目内配置:
.claude/settings.json。
实际项目里推荐把 MCP 配置放到项目级 .mcp.json。原因是每个游戏项目用到的工具不同,如果全部放到用户级配置,所有项目都会加载同一批 MCP 服务器,容易互相干扰。
2.4 配置第一个 3D 开发相关 MCP 服务器
下面是一个 .mcp.json 示例。第一个 filesystem 是真实存在的常见文件系统 MCP,用来授权 Claude 读写指定目录;第二个是示意性的引擎 MCP,具体包名要以你选择的服务文档为准:
json复制{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/absolute/path/to/your/3d-game-project"
],
"env": {}
},
"game-engine": {
"command": "npx",
"args": ["-y", "your-mcp-server-package"],
"env": {
"ENGINE_PATH": "/path/to/engine"
}
}
}
}
配置文件关键点说明:
command:启动 MCP 服务器的命令。常见写法是npx,原因是可以用-y自动下载并运行包。args:传给命令的参数。文件系统服务器需要你传入一个绝对路径,这个路径就是 Claude 被允许操作的项目目录。env:环境变量。引擎类 MCP 经常需要告诉服务器引擎安装在哪里。- 每个服务器有一个名字,比如
filesystem。名字自定义,但建议见名知意。
注意路径要给绝对路径。如果传入相对路径,Claude 可能找不到目录,导致服务器启动失败。
2.5 确认 MCP 连通:用工具列表验证
配置完 MCP 后,在项目根目录启动 Claude Code:
bash复制cd /absolute/path/to/your/3d-game-project
claude
进入交互界面后输入:
text复制/mcp
界面会列出当前会话可用的 MCP 服务器和工具。正常情况下,你应该看到类似 read_file、write_file、list_directory 这类文件系统工具。如果 CLI 支持,还可以让 Claude 直接回答“你现在能用哪些 MCP 工具”,它会尝试枚举可用能力。
只有工具列表出现,后续生成游戏文件才可能真正落到本地目录。如果这一步没通过,后面的流程都会断掉。
3. 三款游戏逐一落地:太空跑酷、迷宫寻宝、弹跳球
3.1 第一款:3D 太空跑酷,先跑通最小闭环
第一款游戏的目标是跑通整个链路,所以不建议一上来就用复杂引擎,选择 Three.js 单 HTML 文件最容易验证。下面是一段可以直接发送给 Claude Code 的提示词:
text复制在 /absolute/path/to/your/3d-game-project 下使用 Three.js 创建一款 3D 太空跑酷游戏。
要求:
1. 使用一个 HTML 文件和内联脚本,直接打开浏览器就可以运行。
2. 玩家是一个方块角色,沿 Z 轴前进,玩家可以左右移动。
3. 障碍物是随机高度和位置的长方体,从前方不断出现。
4. 玩家撞到障碍物时游戏结束,并显示得分。
5. 添加星空背景和简单光效。
6. 完成后用本地静态服务启动,告诉我访问地址。
这段提示词包含了六类信息:技术栈、文件形态、玩家操作、核心玩法、失败条件、运行方式。这样 Claude 不需要猜测太多东西,生成结果会更稳定。
生成完成后,让 Claude 在本项目目录启动静态服务并给出地址。你需要在浏览器里验证三件事:页面是否正常渲染、左右移动是否流畅、碰撞后是否结束并显示得分。如果障碍物密集到完全无法躲避,说明随机参数不合理,直接告诉 Claude“降低障碍物出现频率,提高玩家左右移动速度”,它会修改对应参数。
这个闭环的价值在于:你已经完成了一次完整的“需求描述 -> AI 生成 -> 运行验证 -> 反馈调整”循环。这是后面所有复杂项目的基本单位。
3.2 第二款:3D 迷宫寻宝,理解场景和资源编排
跑酷游戏基本是单场景线性逻辑,迷宫寻宝则引入了一个新的难点:迷宫生成算法必须保证入口到出口可达。如果只是随机堆墙,很容易生成死迷宫。下面这版提示词把算法边界写了进去:
text复制创建一款 3D 迷宫寻宝游戏。
- 使用 Three.js,单 HTML 文件运行。
- 迷宫是 10x10 网格,墙体高度 2 米,地面用浅色平面。
- 迷宫数据要求使用递归回溯算法生成,确保入口到出口可达。
- WASD 控制角色移动,角色是一个小球体。
- 出口位置放一个金色宝箱,角色靠近时弹出“寻宝成功”。
- 生成一个右下角小地图辅助定位。
这里要重点关注“递归回溯算法”和“入口到出口可达”这两个描述。它们的作用是把 AI 的随机生成逻辑约束在正确范围内,避免出现无法完成游戏的情况。
验证时需要确认:迷宫生成后是否存在死胡同导致通关不了、小地图坐标方向是否和实际场景一致、角色是否会被墙卡住。如果用户在迷宫边缘穿墙,可能不是算法问题,而是碰撞体尺寸设置得比墙面缝隙还要小,此时让 Claude 检查碰撞体积和墙体边界。
这一款比跑酷更接近真实项目,因为它同时涉及数据生成、场景渲染和交互逻辑三部分,你也会更直观感受到“AI 生成代码 + 你校验产物”的新型协作方式。
3.3 第三款:3D 弹跳球,验证物理参数与调试
第三款加入物理引擎,难度明显提升。弹跳球如果自己写碰撞和重力,很容易出现穿透、弹跳力过大、平台位置错乱等问题。使用 Three.js 配合 Cannon.js 是更稳妥的方案:
text复制创建一款 3D 弹跳球小游戏。
- 使用 Three.js + Cannon.js,单 HTML 文件运行。
- 初始场景有一个绿色小球和多个移动平台。
- 点击屏幕时,小球向点击方向施加一个力。
- 小球掉落出 y=0 以下游戏结束,显示存活时间。
- 平台做往复移动,越过边界后从另一侧出现。
验证重点和前面不同:要反复点击小球,观察力的大小、方向是否合理;平台移动范围是否超出视野;小球是否存在穿透平台掉落的异常。物理参数是这一款最容易翻车的地方。如果点击一次小球直接飞出画面,让 Claude 把施加的力从上调参数改为按比例缩放,并增加摩擦和阻尼。
这个例子说明,零代码不代表零思维。你仍然要理解重力、碰撞体、阻尼这些概念,否则连“该反馈什么话”都不知道。
3.4 三款游戏的实现对比与效果预期
| 对比项 | 3D 太空跑酷 | 3D 迷宫寻宝 | 3D 弹跳球 |
|---|---|---|---|
| 核心机制 | 移动 + 碰撞检测 | 迷宫生成 + 寻路到达 | 物理引擎 + 受力弹跳 |
| 关键算法 | 随机障碍生成 | 递归回溯迷宫 | 重力、阻尼、平台运动 |
| 典型文件 | 一个 HTML 文件 | 一个 HTML 文件 | 一个 HTML 文件 |
| 验证方式 | 撞到障碍结束后看得分 | WASD 走到出口 | 点击小球观察掉落 |
| 最容易翻车的点 | 障碍物密度不合理 | 出口不可达 | 弹跳力过大、穿透平台 |
三款游戏难度是递进的:第一款让你熟悉生成与运行,第二款让你看到算法约束的价值,第三款让你学会围绕物理参数做调试。建议按顺序做,不要跳过第一款直接上弹跳球。
4. 实战过程中的高频问题排查:从现象到根因
4.1 问题 1:MCP 服务器连不上
现象:在 Claude Code 里执行 /mcp,某个 MCP 服务器显示断开或报错,状态不是正常连接。
可能原因按优先级排查:
- MCP 包名写错,导致 npx 找不到包。
- 项目目录路径不存在,文件系统服务器无法启动。
- 配置 JSON 格式有问题,Claude Code 没有加载成功。
- 首次使用 npx 下载包时网络失败。
检查方式:在终端手动执行配置里的命令,比如:
bash复制npx -y @modelcontextprotocol/server-filesystem /absolute/path/does-not-exist
如果手动执行已经报错,说明问题在包名或路径;如果手动能启动但 Claude Code 里仍然断开,说明配置没有被正确加载,检查是不是缺少逗号、引号不匹配等 JSON 语法问题。
4.2 问题 2:Windows 下提示虚拟机平台必须启用
现象:在 Windows 上启动 Claude Code 或某些 MCP 服务器,提示类似“Claude's workspace requires the Virtual Machine Platform on Windows. Enable it”的错误。
原因:Claude Code 在 Windows 上使用虚拟化隔离工作区,系统尚未启用“虚拟机平台”功能。
处理方式:
- 打开“控制面板”中的“启用或关闭 Windows 功能”。
- 找到“虚拟机平台”(Virtual Machine Platform)并勾选。
- 点击确定后重启电脑。
- 重启后再打开 Claude Code,确认提示消失。
这一步需要本机有管理员权限;如果是公司统一管理的设备,需要先联系设备管理员开通,不要尝试绕过系统权限。
4.3 问题 3:npx 下载失败或 MCP 配置不生效
现象:MCP 配置文件已经修改,但 Claude Code 里一直看不到新工具,或者 npx 长时间卡在下载阶段。
先区分两类问题:
- 如果 npx 卡住,多半是网络到 npm 仓库不稳定。可以换个镜像源,或者检查自己是否配置了错误的 npm registry。
- 如果配置不生效,先确认你改的是哪个配置文件。项目级
.mcp.json只对当前项目生效,用户级配置对全局生效。项目级配置优先级通常更高。修改完配置后,需要重启 Claude Code 或重新加载会话,不会自动热更新。
另一个常见原因是配置文件里使用了相对路径。MCP 服务器接收到的相对路径可能和你预期的目录不一致,建议全部写成绝对路径。
4.4 问题 4:Claude 执行了工具但游戏没有生成任何文件
现象:Claude 在对话中说“文件已经创建”,但打开项目目录后什么都没有。
最可能的原因是文件系统 MCP 授权目录和当前项目目录不一致。比如你授权给 /home/user/3d-games,但当前工作目录是 /home/user/3d-games/sample,服务器只会允许在授权路径内操作,Claude 就会把文件写到授权目录,而不是它认为的当前目录。
处理方式:在对话里要求 Claude 先执行 pwd 或列出当前目录,然后确认文件写入路径绝对是通过 MCP 授权过的路径。养成习惯:每次开始新项目,第一句话先让 Claude 列出当前目录结构,再开始生成。
注意:不要一次性给文件系统 MCP 授权整个系统根目录。MCP 能操作的范围就是授权范围,目录权限越窄,越安全。
4.5 高频问题对照表
| 问题现象 | 常见原因 | 检查方式 | 优先处理方案 |
|---|---|---|---|
| MCP 服务器断开 | 包名错误、路径不存在 | 手动运行 npx 命令 | 修正包名或绝对路径 |
| 配置修改后不生效 | 改了错误的配置文件 | 确认 .mcp.json 位置 | 重启 Claude Code |
| Windows 报虚拟机平台错误 | 系统功能未启用 | 打开 Windows 功能面板 | 勾选虚拟机平台并重启 |
| npx 下载卡住 | npm 网络不稳定 | 查看终端日志 | 检查 registry 配置 |
| 工具调用成功但无文件 | 授权目录和项目目录不一致 | 让 Claude 列出目录 | 统一绝对路径 |
| 游戏白屏 | 浏览器控制台有报错 | 打开开发者工具 | 把报错贴给 Claude |
5. 让零代码 3D 游戏走向可用的最佳实践
5.1 一条可复用的自然语言需求模板
三款游戏做下来,你会发现提示词质量直接决定生成效果。下面是一条可复用的模板,适合发给 Claude Code 的任务描述:
text复制[游戏类型]:
- 技术栈:[Three.js / Unity / Unreal / Godot]
- 运行方式:[单 HTML / 本地服务器 / 编辑器内运行]
- 核心玩法:[玩家做什么、怎么得分、怎么失败]
- 场景要求:[地形、光照、材质、摄像机]
- 算法边界:[迷宫要可达、障碍要可躲、物理参数要稳定]
- 验证方式:[浏览器打开、控制台无报错、点击测试]
- 文件约束:[文件放在哪个目录、是否必须使用现有 MCP 工具]
模板里的“算法边界”最容易被新手忽略。做迷宫时要写“入口到出口可达”,做跑酷时要写“障碍物密度要合理”,做物理游戏时要写“小球不能穿透平台”。这些约束会在关键时候避免 AI 生成表面漂亮、实际不可玩的产物。
5.2 项目组织方式与版本管理
不要把所有生成文件都丢到同一个目录里,否则改到第三款游戏时,第一款已经不好定位了。建议按这个结构组织:
text复制3d-game-project/
.mcp.json
games/
space-runner/
maze-treasure/
bounce-ball/
docs/
需求.md
运行说明.md
每个游戏完成后,用 git 提交一次记录。AI 生成的代码会不断变化,版本管理能让你在改坏之后快速回退。提交信息尽量写清楚,比如“完成迷宫寻宝的递归回溯算法和 WASD 控制”。
5.3 学习环境与生产环境的差异
本地跑通一款游戏和真正发布上线之间还有很多距离。下表列出了主要差异:
| 维度 | 学习/本地实验 | 生产发布 |
|---|---|---|
| 资源 | 基本几何体、纯色材质 | 模型、贴图、动画、音频 |
| 性能 | 能跑就行 | 需要关注帧率、内存、DrawCall |
| 测试 | 手动点击 | 自动化测试、多设备真机 |
| 资产安全 | 不需要考虑 | 需要服务端校验、资源防盗 |
| 部署 | 本地静态服务 | 构建产物、CDN、版本回滚 |
| 配置管理 | 写死在项目里 | 环境变量、配置中心、密钥隔离 |
如果只是学习,做第一款跑酷时不需要考虑这些。但如果你想把 AI 生成的游戏转到微信小游戏、App 或网页平台,至少要提前想清楚资源和性能问题。
5.4 发布前 7 步检查清单
每次做完一款游戏,建议按下面的清单快速过一遍:
- 依赖是否齐全:在全新目录重新安装依赖后是否能运行。
- 文件路径是否统一:所有生成内容是否都在项目目录内。
- 核心玩法是否闭环:能开始、能得分、能结束、能重新开始。
- 控制台是否无报错:打开浏览器开发者工具检查 JS 错误。
- 异常分支是否处理:比如窗口缩放、按钮重复点击、移动端触屏。
- 性能是否符合目标:手机测试时是否掉帧明显。
- 版本是否可回退:git 是否留下了清晰提交记录。
这个清单同时适用于 AI 生成的代码和人手写的代码,它不因为“零代码”就可以省略。
5.5 扩展方向:其他 MCP 生态与本地模型接入
完成三款 Three.js 小游戏后,可以继续往这几个方向扩展:
- Unreal Engine 与 Unity 的 MCP 服务器:目前已经有面向游戏引擎的 MCP 服务器出现,可以让 Claude 在编辑器内创建关卡、调整资源、执行蓝图操作。使用前提是先确认引擎版本和 MCP 包的兼容性,不同版本差异很大。
- Blender MCP:用 Claude 生成 3D 模型或批量调整场景资产。
- 数据库 MCP:如果你想把游戏数据保存到数据库,可以接入 PostgreSQL 等数据库 MCP 服务器,让 Claude 直接执行建表、查询语句。
- 浏览器 MCP:用于自动打开页面、点击按钮、截图验证游戏结果。
- 本地模型接入:Claude Code 可以对接本地模型服务,适合需要控制成本或离线实验的场景。接入时要注意模型能力和 Claude Code 特性并不完全等价,部分工具调用功能可能受限。
MCP 生态还在快速变化,判断一个新 MCP 服务器是否值得接入,主要看三点:文档是否完整、维护是否活跃、授权范围是否可控。不要装一堆服务器,一个能稳定读写文件和操作目标引擎的服务器,比十个半残工具更解决问题。
再回到最初的问题:零代码做 3D 游戏,并不是让代码消失,而是把写代码、配环境、改参数这些工作交给能调用工具的 AI 去完成。MCP 决定了 Claude 能握住多少工具,Claude Code 决定了这些工具能否在你的项目里真正落地。能做出三款游戏只是起点,真正有价值的是你掌握了拆需求、配 MCP、验产物、查问题的完整链路。照着这篇文章先跑通第一款,再逐步加复杂度和物理逻辑,会比一次性堆出十个半成品更有用。
