一名初一学生用AI开发《末日突围》3D游戏的实践过程
目录
一、概述. 2
二、游戏特点. 5
三、游戏框架结构. 6
四、游戏技术路线. 7
五、结束语. 8
n 视觉演示:
https://www.bilibili.com/video/BV1XDhK6nECm/。
n 下载地址:
链接: https://pan.baidu.com/s/1-FNyggbGuJ3xxRkWBBkKOw?pwd=v2nu。 提取码: v2nu
n 开源地址:
https://github.com/wxzz/Apocalyptic-Escape-Game。
https://gitee.com/wxzz/Apocalyptic-Escape-Game。
一、概述
《末日突围》是一名初一学生在AI编程助手辅助下独立开发的3D第一人称战术射击游戏。游戏基于WebGL技术,以末日废土为背景,玩家在废弃封锁区中抵御僵尸围攻或与AI雇佣兵混战。游戏可在浏览器中直接运行,也可通过Windows桌面程序运行。
生化生存模式需通关10波僵尸,第6波起出现精英僵尸(疾速/铁壁/自爆),第10波迎战血量10000的巨型Boss。

图 启动画面 
图 辅助设置

图 武器库

图 射击画面

图 数据统计
二、游戏特点
2.1 零基础起步,AI全程辅助
开发者为初一学生,有一定C语言开发的基础,但是没有工程化开发经验。开发中以AI为"结对编程伙伴",学生负责提出需求、描述玩法、验证效果,AI负责生成代码、调试排错、优化性能。开发工具环境:Visual Studio Code+DeepSeek+GPT。
2.2 双模式独立玩法
- 生化生存:波次制防御,10波递进难度,含精英怪与Boss战。
- 死斗模式(已经进行,后期开发):清剿12名AI雇佣兵,AI自由混战,随机配备步枪/狙击/霰弹/手枪。
两种模式共享移动、射击、武器切换等基础操作,但敌人行为、关卡节奏和胜利目标完全不同。
2.3 完整的战术与武器系统
- 移动:WASD移动、Shift冲刺(耗耐力+产生脚步声)、Ctrl蹲伏、空格跳跃。
- 瞄准:右键开镜、开镜+Shift屏息(消晃动,2秒/5秒冷却)、F侧瞄、Alt概略瞄准。
- 战术:Q/E左右探头、X切换射击模式(单发/连发/三连发)、I武器检视。
- 武器:手Q、步Q、狙击Q、霰弹Q、战术刀,支持滚轮/侧键/数字键切换;持重武器降低移动速度。
2.4 部分3D模型手工建模
游戏模型采用混合来源:角色动作来自公开库(GLB骨骼动画),另有部分3D模型由开发者手工建模完成。对初一学生而言,手工建模需学习多边形建模、UV展开、材质贴图等专业知识,这些模型虽精度有限,但承载了创作者对游戏世界的独特理解。
2.5 完整外围系统
- 启动菜单:模式选择、武器库、幸存者档案入口。
- 武器库:浏览武器、查看属性、3D预览、装备配置。
- 设置面板:鼠标灵敏度、音量、瞄准辅助开关、退出对局。
- 战绩统计:击杀数、通关次数记录,支持重置。
- 游戏HUD:血条、耐力条、弹药、换弹进度、准星、罗盘、波次、Boss血条、伤害方向指示。
三、游戏框架结构
项目采用分层架构,各层职责明确:
3.1 表现层(index.html + style.css)
index.html定义全部DOM结构,包括渲染容器、HUD界面、覆盖层、菜单、武器库、设置、教程、结算等元素。style.css负责视觉样式,采用深色军事风格,以暗绿和橙红为主配色。
3.2 逻辑层(game.js)
game.js为游戏核心(约40万字符,ES Module规范),包含:3D场景管理、玩家控制器(视角/移动物理/姿态)、武器系统(射击/换弹/切换/后坐力)、第一人称手臂动画(Mixamo骨骼驱动,状态交叉淡入淡出)、敌人AI(僵尸追踪/雇佣兵战术)、波次管理、碰撞检测、输入系统、UI交互、音效系统。
3.3 桌面封装层(main.js + Electron)
main.js为Electron主进程,负责创建窗口、加载index.html、管理生命周期。启动时窗口最大化,提供沉浸式体验。通过nodeIntegration配置可访问本地文件系统和Node.js API。
3.4 资源层
包含GLB格式3D模型(按动作分目录)、favicon.ico应用图标、JSON配置文件(武器属性、敌人参数、平衡数据)。
3.5 构建层(package.json)
通过npm管理依赖,electron-builder打包为Windows便携版(portable)EXE,无需安装即可运行。
四、游戏技术路线
技术选型围绕"轻量、开源、浏览器原生可运行"原则,全部基于免费Web技术。
4.1 3D渲染:Three.js
- 场景搭建:场景、透视相机、WebGL渲染器、自适应尺寸。
- 模型加载:GLTFLoader加载GLB模型与骨骼动画。
- 动画系统:AnimationMixer管理动画播放与状态切换。
- 射线检测:Raycaster实现射击命中与物体拾取。
- CSS2D叠加:CSS2DRenderer在3D空间渲染2D标签(伤害数字等)。
通过importmap实现模块本地映射,无需打包工具即可使用标准import语法。
4.2 模型与动画:GLTF/GLB
采用GLTF 2.0二进制格式(GLB),体积小、加载快、支持骨骼动画。角色动作按武器姿态分类(基础射手包/手枪动作包/其他动作包)。第一人称手臂系统加载仅含骨骼的GLB文件,将手臂骨架挂载到相机,按动作状态切换动画,切换时0.15秒交叉淡入淡出;仅应用旋转轨道、忽略位移轨道以防骨架飞走,通过调校偏移量确保手臂在视角中位置正确。
4.3 模型优化:gltf-transform
使用@gltf-transform工具链对GLB模型预处理,包括网格压缩、纹理压缩、合并重复材质、移除未使用资源,减小体积、提升加载性能。
4.4 前端:HTML5 + CSS3 + ES Module
纯HTML+CSS实现UI,无前端框架,结构简单、加载快速。采用ES6+模块规范(import/export),支持箭头函数、解构、类、顶层await等现代语法。
4.5 输入交互:Pointer Lock + 键鼠事件
使用Pointer Lock API锁定鼠标实现视角旋转,点击画面锁定、Esc释放。键盘通过keydown/keyup维护按键状态表,在主循环中更新玩家行为。支持鼠标灵敏度调节(0.5x--2.5x)。
4.6 桌面打包:Electron + electron-builder
Electron基于Chromium+Node.js,将网页封装为桌面应用。electron-builder配置为Windows便携版目标,生成单一EXE,双击即玩。
4.7 AI辅助开发流程
- 需求拆解:自然语言描述 → AI拆解为技术方案。
- 代码生成:AI生成JS/HTML/CSS,学生复制到项目。
- 调试排错:粘贴错误信息 → AI分析原因并给修复方案。
- 性能优化:AI识别瓶颈,提供优化建议。
- 迭代改进:试玩发现问题 → 与AI对话持续完善。
"人提需求+AI写代码+人验效果"的循环,大幅提升开发效率,让零基础学生在短时间内完成功能完整的3D游戏。
五、结束语
《末日突围》证明了AI时代青少年编程教育的全新可能。在AI辅助下,一名初一学生无需先花数年学习编程语言和图形学,就能从"我想做个游戏"的想法出发,逐步将创意变为现实。
学生收获的不仅是一款可运行的游戏,更是需求拆解、与AI高效沟通、测试验证、迭代改进的能力,以及对编程思维的直观理解。当编程门槛被AI降低,创造力和想象力成为核心竞争力。
未来计划继续完善:增加更多武器、地图和敌人类型,尝试多人联机,并将开发经验分享给更多对游戏开发感兴趣的同学。在代码的世界里,每个少年都可以成为突围的英雄。
《末日突围》完整玩法与操作说明
本文档为《末日突围》全维度游戏指南,包含游戏模式、按键操作、战术技巧、武器逻辑、界面释义、核心规则、游玩注意事项,新手、老手均可快速查阅使用。
📑 目录
一、游戏模式详解
游戏包含生化生存模式 和多人死斗模式两种玩法,规则、目标与特色完全独立,具体细节如下:
1. 生化模式(僵尸生存)
以波次形式抵御僵尸围攻,坚守存活并清空所有波次敌人即可通关。
- 核心目标:在僵尸围攻下存活,击杀当前波次全部僵尸,解锁下一波挑战
- 胜利条件:成功通关全部10个波次
- 失败条件:玩家生命值归零,挑战结束
- 模式特色:
○ 僵尸数量随波次递增,难度逐步提升
○ 第6波开始刷新精英僵尸(疾速僵尸、铁壁僵尸、自爆僵尸)
○ 第10波刷新终极Boss巨型僵尸(基础血量10000)
○ Boss存续期间,会持续刷新普通僵尸小兵,增加通关难度
2. 死斗模式( AI 雇佣兵对战)
清空地图内所有敌方AI雇佣兵,获取对局胜利。
- 核心目标:击杀地图中全部AI雇佣兵敌人
- 胜利条件:成功歼灭全部12名敌方AI
- 失败条件:玩家生命值归零,对局失败
- 模式特色:
○ 敌方AI为自由混战机制,AI之间会互相攻击、独立作战
○ 每名AI随机配备武器
○ AI具备智能战术逻辑,可实现走位规避、自主换弹、掩体躲藏等操作
二、移动与视角控制
基础移动、视角操控按键,适配全模式通用操作:
|---------------|------------------------|
| 按键 | 功能说明 |
| W / A / S / D | 角色前后左右基础移动 |
| 鼠标移动 | 旋转游戏视角、调整瞄准方向 |
| Shift | 奔跑冲刺(移动速度提升,会产生脚步声) |
| 空格键 | 角色跳跃 |
| Ctrl | 下蹲(压低身形隐蔽性提升,小幅降低移动速度) |
三、基础战斗操作
全武器通用战斗按键,涵盖射击、瞄准、换弹、武器切换等核心操作:
|----------|------------------|
| 按键 | 功能说明 |
| 鼠标左键 | 枪械开火 / 近战武器挥刀攻击 |
| 鼠标右键 | 开镜瞄准(仅适配带瞄准镜的武器) |
| R | 手动换弹 |
| 鼠标滚轮 | 顺序循环切换所有携带武器 |
| 鼠标侧键(前进) | 循环切换主武器 |
| 鼠标侧键(后退) | 快速切换副武器 / 近战武器 |
四、进阶战术动作
高阶战术按键,适用于对枪、卡点、精准瞄准等实战场景:
|----------|---------------------------|
| 按键 | 功能说明 |
| Q | 左向探头(掩体左侧探身瞄准,探头状态无法奔跑) |
| E | 右向探头(掩体右侧探身瞄准,探头状态无法奔跑) |
| 开镜+Shift | 屏息瞄准(消除准星晃动,持续2秒,冷却5秒) |
| X | 切换射击模式(单发/连发/三连发,仅限适配武器) |
| F | 主瞄/侧瞄模式切换(侧瞄无准星,射击精度小幅提升) |
| Alt | 侧向概略瞄准(枪身侧倾,精度介于腰射与开镜之间) |
| I | 武器检视(查看武器细节,检视期间无法射击) |
| Tab | 打开战况面板,查看击杀数、剩余敌人等对局数据 |
五、武器切换完整逻辑
1. 鼠标侧键循环切换顺序
主武器 → 手枪(副武器)→ 战术刀(近战)→ 循环回主武器
2. 数字键快捷切换(精准定位)
|----|-------------|
| 按键 | 切换目标 |
| 1 | 手枪(副武器) |
| 2 | 当前装备主武器 |
| 3 | 战术刀(近战武器) |
| 4 | 投掷物(已装备时生效) |
六、游戏界面功能说明
游戏全局UI界面释义,快速掌握对局状态信息:
|------|-----------------------------------------|
| 显示区域 | 展示内容 |
| 左下角 | 角色生命值条(HP)+ 实时血量百分比;附带异常状态图标(骨折/流血/止痛等) |
| 右下角 | 当前弹匣弹药数 / 后备总弹药数 |
| 右上角 | 击杀数;生化模式显示当前波次、死斗模式显示剩余存活敌人数 |
| 屏幕中央 | 射击准星(开镜、侧瞄状态下样式自动变化) |
| 准星下方 | 换弹进度指示器,直观查看换弹剩余时间 |
七、核心游戏规则
1. 通用全局规则
- 玩家生命值归零直接判定死亡,对局/波次失败
- 换弹期间无法射击、无法切枪、无法冲刺、无法跳跃,全程硬直
- 受到伤害时,屏幕对应方向边缘会闪烁红光,提示敌人攻击来源
2. 生化模式专属规则
- 当前波次所有僵尸全部击杀后,自动开启下一波挑战,无手动跳转操作
- 第6波为精英僵尸刷新节点,随机刷新各类特殊僵尸,难度大幅提升
- 第10波击杀终极Boss后,直接通关本局游戏
八、游玩关键注意事项
- 移速差异:武器重量影响移动速度,手枪、战术刀移速最快,狙击枪、轻机枪等重型武器移速最慢
- 瞄准机制互斥:开镜瞄准与侧瞄模式无法同时开启,开启其一自动关闭另一模式
- 侧瞄特性:侧瞄无可视化准星,适合中近距离概略射击,精度优于腰射、弱于开镜
- 屏息机制:开镜状态下按住Shift屏息,可消除准星抖动,持续2秒,结束后有5秒冷却时间
- 脚步声机制:奔跑冲刺会产生明显脚步声,可被AI敌人捕捉并吸引仇恨,偷袭、卡点时建议关闭冲刺
- 武器检视限制:任意时间可按I检视武器,但检视动作期间无法进行任何攻击操作
参考文章
(1)硬件网关:https://mp.weixin.qq.com/s/iKMqn62YIhBlXjGtY2wKXQ。
(2)物联网(IOT):https://mp.weixin.qq.com/s/5u4L8fItaFpIbVYOlxbmGg。
(3)视觉分析(Vision):https://mp.weixin.qq.com/s/SiiuXTTGplTAERRYyCmGCQ。
(4)大模型智库(AiMind):https://mp.weixin.qq.com/s/SH_q2k_zbQ-pcd05zj86-g。
(5)大模型智能问数(AiInsight): https://mp.weixin.qq.com/s/A1fIQq_w9c8SW9aEWVIsgw。
(6)小i助手:https://mp.weixin.qq.com/s/5UCoYsDAbfFP-ZI2sj_QBg。
(7)视觉模型:https://mp.weixin.qq.com/s/Gq74ITDfEwK88jt8b--1PA。
物联网&大数据技术 QQ群:54256083
物联网&大数据项目 QQ群:727664080
QQ:504547114
