在 WorkBuddy 上开发游戏:我的实战经验分享

从零开始,用 AI 助手在 2 小时内完成一款完整的赛博朋克 FPS 游戏开发。本文将详细介绍如何通过精心设计的提示词(Prompt)来引导 AI 完成游戏开发,适合想要尝试 AI 辅助开发的游戏爱好者阅读。


目录

  1. [前言:从传统开发到 AI 辅助开发](#前言:从传统开发到 AI 辅助开发)
  2. [为什么选择 WorkBuddy 开发游戏?](#为什么选择 WorkBuddy 开发游戏?)
  3. [项目介绍:NEON STRIKE](#项目介绍:NEON STRIKE)
  4. 提示词工程基础
  5. 六大核心模块的提示词策略
  6. 常见问题与解决方案
  7. 如何发布你的游戏
  8. 开发心得与经验总结
  9. 总结

前言:从传统开发到 AI 辅助开发

作为一名有多年游戏爱好者,我深刻体会过"从零开发一款游戏"的艰辛。传统开发模式通常需要数周甚至数月时间,这对于业余开发者来说是一个巨大的门槛。

直到我开始使用 WorkBuddy 进行游戏开发,这个过程发生了根本性的变化。

AI 辅助开发的效率革命

开发阶段 传统方式 AI 辅助开发 效率提升
需求分析 3-5 天 1-2 小时 ~10x
编码实现 2-4 周 2-4 小时 ~15x
调试修复 1-2 周 1-2 小时 ~10x
文档编写 3-5 天 1-2 小时 ~5x

使用 WorkBuddy 开发 NEON STRIKE 这款 FPS 游戏,总耗时不超过 2 小时。


为什么选择 WorkBuddy 开发游戏?

1. 全栈能力覆盖

WorkBuddy 整合了代码编写、调试、搜索、文件管理等多种能力,形成了一个完整的 AI 开发助手生态:

  • 代码生成:直接输出可运行的完整代码
  • 知识检索:内置游戏开发相关知识库
  • 文件操作:自动创建和修改项目文件
  • 多模态生成 :支持生成游戏配图和素材

2. 实时协作与长对话记忆

WorkBuddy 能够记住整个对话的上下文:

  • 可以在多个会话中持续完善同一个项目
  • AI 能理解你的项目架构和编码风格
  • 遇到问题时,AI 能快速定位问题所在

3. 丰富的技能市场

WorkBuddy 内置了多种专业技能(Skills),按需加载即可使用:

技能名称 用途 游戏开发场景
AI绘图 生成图片素材 敌人立绘、场景概念图
浏览器自动化 Web 测试 游戏自动化测试
文档处理 文档生成 游戏设计文档

4. 支持多种游戏类型

虽然本文以 FPS 游戏为例,但 WorkBuddy 的能力并不局限于某一类游戏:

  • 2D 游戏:平台跳跃、解谜、塔防
  • 3D 游戏:FPS、赛车、冒险解谜
  • 休闲游戏:消除、合成、模拟经营
  • 策略游戏:回合制、即时战略

项目介绍:NEON STRIKE

游戏简介

NEON STRIKE (霓虹突击)是一款完全基于浏览器运行的赛博朋克风格第一人称射击游戏。

游戏背景设定

在不远的未来,霓虹灯照亮了城市的每一个角落。城市被巨型公司控制,人民生活在数据与代码编织的牢笼中。你是一名反抗军战士,潜入公司的研发中心,消灭所有守卫的赛博士兵,窃取核心数据。

核心玩法

  • 目标:在限定场景内消灭所有敌人
  • 操作:第一人称视角,WASD 移动,鼠标瞄准,左键射击
  • 挑战:合理利用掩体,管理弹药,躲避敌人攻击

核心特性一览

特性模块 实现方案 技术亮点
3D 渲染 Three.js PBR 材质、实时阴影、后期处理
视角控制 Pointer Lock API 鼠标锁定、视角平滑
物理系统 自定义实现 重力、跳跃、碰撞检测
AI 敌人 状态机 追踪、攻击、死亡状态
武器系统 射线检测 精确命中、后坐力反馈
音效系统 Web Audio API 合成音效、无需外部文件
UI 系统 HTML/CSS 覆盖 响应式设计、移动端适配

提示词工程基础

什么是好的游戏开发提示词?

一个好的提示词需要包含以下几个要素:

复制代码
┌─────────────────────────────────────────────────────┐
│                    提示词结构                        │
├─────────────────────────────────────────────────────┤
│  1. 角色定义     → 你是什么身份?                    │
│  2. 任务目标     → 你要完成什么?                    │
│  3. 具体要求     → 有什么特殊需求?                  │
│  4. 输出格式     → 你希望得到什么形式的结果?         │
│  5. 约束条件     → 有什么限制需要注意?              │
└─────────────────────────────────────────────────────┘

提示词质量对比

模糊提示词(效果差):

复制代码
帮我做一个FPS游戏

清晰提示词(效果好):

复制代码
你是一个专业的游戏开发者。请用单个HTML文件(使用Three.js库,通过CDN引入),
创建一个完整可玩的第一人称射击游戏(FPS)。

要求:
- 游戏必须是自包含的单个HTML文件
- 第一人称视角,使用鼠标控制视角(WASD移动,前后左右,空格跳跃,鼠标左键射击)
- 场景:一个简单的封闭房间或迷宫
- 玩家:有移动速度、跳跃、重力、射击
- 敌人:至少5个简单AI敌人,会向玩家移动并攻击,敌人有血量
- 武器:简单的手枪,30发弹匣,R键换弹,射击有后坐力效果
- UI:显示生命值、弹药量、得分
- 游戏结束时有Game Over或胜利画面,并有重玩按钮
- 风格:赛博朋克/科幻风格
- 控制说明:在游戏开始时显示操作说明

请输出完整的HTML代码。

提示词进阶技巧

1. 分解式提示词

不要一次性要求生成整个游戏,而是分模块开发:

开发阶段 提示词重点
第一阶段 场景搭建(地板、墙壁、光照)
第二阶段 玩家控制器(WASD、跳跃、重力)
第三阶段 敌人 AI(追踪、攻击、死亡)
第四阶段 武器系统(射击、命中、特效)
第五阶段 UI 和音效
第六阶段 游戏状态(开始、结束、胜利)
2. 迭代式优化
复制代码
第一轮:生成基础版本
第二轮:根据测试结果指出问题
第三轮:要求针对性优化
第四轮:添加额外功能
3. 上下文补充

在多轮对话中,可以补充项目背景:

复制代码
(继续上一轮的对话)
现在我们需要添加敌人AI。之前创建的场景和玩家控制器保持不变,
请添加会追踪玩家的敌人。敌人需要有:
- 30点生命值
- 被击中会掉血
- 死亡后有爆炸效果
- 消灭一个敌人得100分

六大核心模块的提示词策略

模块一:场景搭建

提示词模板
复制代码
请帮我创建一个赛博朋克风格的3D游戏场景:

1. 场景规格:
   - 60×60单位的封闭空间
   - 8单位高度的穹顶
   - 地板采用深色金属质感,带有发光的网格线条

2. 光照设计:
   - 主光源:青色(#0ff)的方向光,位于斜上方
   - 环境光:深蓝色调,营造夜晚氛围
   - 点缀光:在场景角落添加洋红色和绿色的点光源

3. 墙体:
   - 外墙:深灰色,带轻微金属光泽
   - 内部掩体:创建几个不同高度的掩体供玩家躲避
   - 装饰柱:在角落放置发光柱子作为装饰

4. 氛围:
   - 添加雾效增加空间深度感
   - 整体色调偏暗,突出霓虹灯光效果

请使用Three.js实现,输出完整的场景搭建代码。
关键描述要点
要素 描述方法 示例
尺寸 具体数值 + 单位 "60×60单位大小"
颜色 十六进制/颜色名称 "深灰色 (#333344)"
材质 材质类型 + 特性 "金属质感、高光泽"
光照 光源类型 + 颜色 + 位置 "青色点光源在角落"
氛围 整体描述 + 关键词 "赛博朋克、霓虹灯"

模块二:玩家控制器

提示词模板
复制代码
请实现FPS游戏的玩家第一人称控制器:

1. 视角控制:
   - 使用Pointer Lock API锁定鼠标
   - 鼠标控制视角(上下左右)
   - 视角范围限制在上下各90度
   - 鼠标灵敏度适中

2. 移动控制:
   - WASD键控制前后左右移动
   - W/S向前向后,A/D向左向右
   - 移动速度约8单位/秒
   - 移动方向跟随当前视角方向

3. 跳跃系统:
   - 空格键跳跃
   - 跳跃高度约2单位
   - 有重力下落效果
   - 只有在地面上才能跳跃

4. 碰撞检测:
   - 不能穿过墙壁和障碍物
   - 限制在场景边界内

5. 玩家参数:
   - 身高1.7单位(眼睛高度)
   - 碰撞半径0.5单位

请使用Three.js和Pointer Lock API实现。
描述技巧
复制代码
描述运动逻辑时,用"当...时,应该..."的因果结构:

✓ "当玩家按下W键时,相机应该向前移动"
✓ "当玩家在地面上且按下空格时,应该跳跃"
✓ "当相机高度低于1.7时,应该重置为1.7并停止下落"

避免模糊的指令:

✗ "玩家可以移动" → ✓ "W键向前,S键向后,A键向左,D键向右"
✗ "有跳跃" → ✓ "空格键跳跃,跳跃高度2单位,有重力下落"

📌 配图占位:玩家控制器工作原理

![控制器原理]


模块三:AI 敌人系统

提示词模板
复制代码
请为FPS游戏添加AI敌人系统:

1. 敌人外观(赛博朋克机器人风格):
   - 深红色身体,带发光效果
   - 头部为发光红色立方体
   - 眼睛为青色发光点
   - 整体高度约2单位

2. 敌人数量与位置:
   - 5个敌人
   - 分布在场景不同位置
   - 初始位置示例:(-15,0,-15), (15,0,-15), (-15,0,15), (15,0,15), (0,0,-20)

3. 行为状态机:
   - 追踪状态:当玩家距离大于2.5单位时,向玩家移动
   - 攻击状态:当玩家距离小于等于2.5单位时,每秒扣玩家10点生命
   - 死亡状态:生命值归零时播放爆炸效果并移除

4. 敌人属性:
   - 初始生命值:30点
   - 移动速度:约2.5单位/秒
   - 攻击间隔:1秒
   - 每次攻击伤害:10点

5. 视觉效果:
   - 死亡时有彩色粒子爆炸效果(红色和青色)
   - 被击中时有火花效果

敌人应该有明确的状态切换逻辑,代码要清晰易懂。
状态描述方法

AI 状态机是最容易用自然语言描述的概念之一:

复制代码
用"如果...那么..."描述状态切换:

追踪状态:
- 如果 与玩家的距离 > 攻击范围 → 向玩家移动
- 如果 与玩家的距离 ≤ 攻击范围 → 切换到攻击状态

攻击状态:
- 如果 与玩家的距离 ≤ 攻击范围 → 继续攻击(每1秒扣血)
- 如果 与玩家的距离 > 攻击范围 → 切换到追踪状态

死亡状态:
- 如果 生命值 ≤ 0 → 播放死亡动画,移除敌人

模块四:武器与射击系统

提示词模板
复制代码
请实现FPS游戏的武器射击系统:

1. 基本射击:
   - 鼠标左键射击
   - 射速:约每秒7发(射击间隔0.15秒)
   - 单发伤害:25点

2. 弹药系统:
   - 弹匣容量:30发
   - 显示当前弹药和最大弹药
   - R键手动换弹
   - 换弹时间:2秒
   - 换弹期间不能射击

3. 命中检测:
   - 使用射线检测(Raycasting)技术
   - 从相机位置向前方发射射线
   - 检测是否命中敌人或墙壁

4. 视觉反馈:
   - 射击时屏幕底部有枪口火焰
   - 射击时有轻微屏幕抖动(后坐力)
   - 准星位于屏幕中央

5. 音效(使用Web Audio API合成):
   - 射击声:锯齿波快速下降
   - 命中声:方波短促
   - 换弹声:三角波

请实现完整的手枪武器系统。
射击逻辑描述
复制代码
命中检测的描述要点:

1. 发射源:从相机/玩家眼睛位置发射
2. 发射方向:跟随相机朝向
3. 检测范围:足够远的距离(如100单位)
4. 检测对象:墙壁和敌人
5. 命中处理:
   - 如果命中敌人 → 敌人掉血,死亡判定
   - 如果命中墙壁 → 创建命中痕迹(可选)

射击反馈的描述要点:

1. 即时反馈(视觉/听觉):
   - 枪口火焰
   - 屏幕抖动
   - 射击音效

2. 命中反馈(视觉/听觉):
   - 命中火花
   - 命中音效

3. 伤害反馈(针对玩家):
   - 屏幕闪红
   - 受伤音效

模块五:UI 系统

提示词模板
复制代码
请为FPS游戏添加HUD界面:

1. HUD布局(左下角):
   - 生命值条:青色背景,左侧显示当前生命值
   - 弹药显示:显示"当前弹药/最大弹药",如"30/30"
   - 弹药条:黄色填充

2. 得分显示(右上角):
   - 显示"得分: X"格式
   - 洋红色,发光效果

3. 敌人计数(顶部中央):
   - 显示剩余敌人数量
   - 红色字体

4. 准星(屏幕中央):
   - 简单的十字线
   - 青色发光效果

5. 开始界面:
   - 游戏标题"NEON STRIKE"
   - 操作说明(WASD移动、鼠标射击、空格跳跃、R换弹)
   - "开始游戏"按钮

6. 结束界面:
   - Game Over界面(生命值为0时)
   - 胜利界面(消灭所有敌人时)
   - 显示最终得分
   - "重新开始"按钮

风格要求:赛博朋克霓虹风格,使用深色半透明背景,发光文字效果。
UI 描述要点
复制代码
描述UI元素时,指定:位置、大小、颜色、格式

生命值条:
- 位置:左下角
- 大小:200×12像素
- 颜色:青色边框,渐变填充(绿到青)
- 格式:百分比宽度

得分:
- 位置:右上角
- 颜色:洋红色(#f0f)
- 效果:文字发光

界面层级:
- 3D场景 → 游戏HUD → 开始/结束界面

模块六:音效系统

提示词模板
复制代码
请使用Web Audio API为FPS游戏添加音效系统:

1. 音效类型:
   - 射击声:锯齿波,频率从高快速下降,短促有力
   - 命中声:方波,中等频率,有撞击感
   - 敌人死亡声:锯齿波,频率快速下降到低,有爆炸感
   - 玩家受伤声:正弦波,低沉,让人警觉
   - 跳跃声:正弦波,频率上升,轻快
   - 换弹声:三角波,两段式

2. 实现要求:
   - 使用Web Audio API的OscillatorNode创建
   - 不使用外部音频文件
   - 每种音效有独立函数
   - 音量适中,不刺耳

3. 触发时机:
   - 射击时 → 射击音效
   - 子弹命中敌人 → 命中音效
   - 敌人死亡 → 死亡音效
   - 玩家被攻击 → 受伤音效
   - 玩家跳跃 → 跳跃音效
   - 玩家换弹 → 换弹音效

请输出完整的音效系统代码。
音效描述技巧
复制代码
用音色+行为描述声音:

射击声:
- 音色:锯齿波(有金属感)
- 行为:高频→低频快速过渡
- 特点:短促(0.1秒)

爆炸声:
- 音色:锯齿波或噪声
- 行为:高频→低频较慢过渡
- 特点:较长(0.4秒),有衰减

跳跃声:
- 音色:正弦波(纯净)
- 行为:低频→高频上升
- 特点:短促(0.1秒)

受伤声:
- 音色:正弦波(紧张)
- 行为:中频→低频下降
- 特点:中等长度(0.2秒)

性能优化提示词

当游戏运行不流畅时,可以这样请求优化:

复制代码
当前游戏在某些情况下帧率较低,请帮我优化性能:

1. 渲染优化:
   - 阴影贴图使用合理的分辨率(2048×2048)
   - 使用PCFSoftShadowMap阴影类型
   - 添加场景雾效限制渲染距离

2. 碰撞检测优化:
   - 敌人追踪前先做距离预检,超出范围的敌人跳过检测
   - 只对玩家附近的墙壁进行碰撞检测

3. 帧率控制:
   - 目标帧率60FPS
   - 使用requestAnimationFrame
   - 防止标签页失焦后恢复时delta过大

请在保持游戏功能的前提下进行优化。

常见问题与解决方案

Q1: 鼠标锁定不生效?

问题描述:点击开始游戏后,鼠标没有被锁定,仍然显示系统光标。

解决方案提示词

复制代码
游戏中点击开始按钮后鼠标没有锁定,请问如何解决?

已尝试的方法:
- 检查控制台没有报错
- 点击了开始按钮

预期行为:
- 点击开始后鼠标应该锁定,玩家可以移动视角

Q2: 敌人穿墙怎么办?

问题描述:敌人有时会穿过墙壁。

解决方案提示词

复制代码
敌人会穿过墙壁,请问如何解决?

当前情况:
- 敌人能正常追踪玩家
- 但有时会穿过墙壁
- 玩家不能穿墙(碰撞检测正常)

请优化敌人的碰撞检测,可以考虑:
- 分段移动检测
- 更精确的碰撞盒
- 移动前检测障碍物

Q3: 音效无法播放?

问题描述:某些浏览器中音效无法播放。

解决方案提示词

复制代码
在某些浏览器中音效无法播放,请问如何解决?

已尝试的方法:
- 使用Web Audio API
- 代码逻辑没有问题

请考虑:
- 浏览器自动播放策略
- 用户交互后才能创建AudioContext
- 如何优雅地处理这种情况

Q4: 移动端适配问题?

问题描述:游戏在手机上操作不便。

解决方案提示词

复制代码
游戏在移动端操作不便,请问如何添加移动端支持?

当前问题:
- 电脑端操作正常
- 手机上无法瞄准和移动

需要添加:
- 虚拟摇杆控制移动
- 触控按钮控制射击
- 响应式布局适配

####后续在游玩游戏的时候有什么不足的地方,还可以让他优化,从而达到你的预期。

如何发布你的游戏

方案一:直接分享 HTML 文件

最简单的发布方式,直接分享 NEON_STRIKE.html 文件:

优点

  • 零成本,即刻分享
  • 无需服务器
  • 跨平台兼容

缺点

  • 无法追踪玩家数据
  • 无法防止盗用

方案二:部署到静态托管平台

推荐使用以下平台:

平台 免费额度 CDN 加速 自定义域名
GitHub Pages 1GB
Vercel 100GB
Netlify 100GB
Cloudflare Pages 无限

部署步骤:创建 GitHub 仓库 → 推送代码 → 启用 GitHub Pages

方案三:嵌入到游戏平台

可以将游戏发布到以下平台:

  • itch.io --- 独立游戏首选
  • GameJolt --- 玩家社区
  • Kongregate --- 游戏聚合平台

开发心得与经验总结

AI 辅助开发的最佳实践

1. 需求描述要具体

❌ 模糊描述:

"帮我做一个 FPS 游戏"

✅ 具体描述:

"创建一个赛博朋克风格 FPS 游戏,使用 Three.js,60×60 的封闭房间,5 个 AI 敌人,WASD 移动,鼠标瞄准射击,包含生命值、弹药、得分 UI"

2. 分模块逐步开发

不要一次性要求生成整个游戏,而是分模块开发:

复制代码
第一轮:场景搭建(地板、墙壁、光照)
第二轮:玩家控制器(WASD、跳跃、重力)
第三轮:敌人 AI(追踪、攻击、死亡)
第四轮:武器系统(射击、命中、特效)
第五轮:UI 和音效
第六轮:游戏状态(开始、结束、胜利)
3. 善用迭代优化
复制代码
第一轮:生成基础版本
第二轮:根据需求调整细节
第三轮:添加遗漏的功能
第四轮:性能优化
4. 保持对话上下文

在一个项目中持续对话,WorkBuddy 能记住:

  • 项目的整体架构
  • 已定义的常量和配置
  • 你的编码偏好
  • 之前解决的问题

AI 辅助开发的局限性

虽然 AI 大幅提升了开发效率,但仍有局限:

领域 AI 能力 人类优势
创意设计 ⚠️ 有限 ✅ 无限
复杂 AI ⚠️ 简单状态机 ✅ 行为树、决策树
性能优化 ⚠️ 通用建议 ✅ 具体调优
美术资产 ⚠️ 生成参考 ✅ 最终成品
玩法测试 ❌ 无法测试 ✅ 亲身体验

给新手的建议

  1. 从小项目开始:先尝试 2D 小游戏,再挑战 3D 游戏
  2. 学习基础概念:理解游戏循环、物理引擎、渲染管线
  3. 阅读他人代码:学习优秀的开源游戏项目
  4. 保持耐心:AI 不是万能的,需要多次迭代

未来展望

基于本次开发经验,我计划在 WorkBuddy 上尝试更多类型的游戏:

已列入计划的项目

  • 2D 平台跳跃游戏 --- 预计 1 小时
  • 回合制策略游戏 --- 预计 2-3 小时
  • 塔防游戏 --- 预计 2 小时
  • 赛车游戏 --- 预计 3 小时

想要尝试的技术方向

技术方向 应用场景 学习难度
WebGL 着色器 自定义视觉效果 ⭐⭐⭐
WebXR (VR) 沉浸式游戏体验 ⭐⭐⭐⭐
WebSocket 多人联机游戏 ⭐⭐⭐
WebGPU 次世代渲染性能 ⭐⭐⭐⭐

对 WorkBuddy 的期待

  1. 更长的上下文记忆:支持更大的项目
  2. 代码解释功能:自动生成代码注释
  3. 性能分析集成:自动检测性能瓶颈
  4. 更多技能支持:如游戏引擎特定技能

总结

WorkBuddy 为独立游戏开发者打开了一扇新的大门。它不能替代专业的游戏开发技能,但能显著加速开发流程、降低入门门槛。

通过本次开发经验,我深刻体会到:

  1. AI 是强大的助手,但不是替代者 --- 它能处理重复性工作,但创意和决策仍需人类
  2. 好的需求描述是成功的一半 --- 具体、清晰的需求能获得更好的结果
  3. 迭代开发优于一步到位 --- 分模块开发更容易调试和优化
  4. 持续学习是关键 --- AI 技术在进步,开发者也需要不断学习

如果你也想尝试 AI 辅助开发游戏,不妨从一个小项目开始,体验一下这种全新的开发方式。

相关推荐
weitingfu3 小时前
AI 游戏,为什么更适合鸿蒙?
人工智能·游戏·华为·ai·harmonyos
sensen_kiss3 小时前
CPT306 Principles of Computer Games Design 电脑游戏设计原理 Pt.6 Gameplay 游戏玩法
学习·游戏
呼叫冰河谷4 小时前
Unity学习笔记(六)——3DRPG游戏(4)
笔记·学习·游戏
风酥糖5 小时前
Godot游戏练习01-第30节-教程结束我继续
游戏·游戏引擎·godot
Heikepengmu6 小时前
用Unity打造愤怒的小鸟游戏
游戏·unity·游戏引擎
上海云盾安全满满6 小时前
游戏版本,数据被盗如何预防
游戏
2301_780789666 小时前
游戏盾是如何防护各个重要的游戏端口呢
服务器·网络·人工智能·游戏·架构·零信任
开开心心就好6 小时前
这款PPT计时工具支持远程控制功能
前端·科技·游戏·edge·pdf·全文检索·powerpoint
开开心心就好1 天前
无需安装的单机塔防游戏轻松畅玩
人工智能·游戏·pdf·音视频·智能家居·语音识别·媒体