零基础也想自己做3D FPS?本地AI把场景、移动、射击和敌人一步步生成出来
前言
想自己做一款3D射击游戏,门槛通常不低。场景、第一人称视角、移动、射击、碰撞、敌人、血量和计分都要逐步实现,哪怕只是做一个能玩的FPS原型,也需要同时处理不少代码和交互逻辑。
这篇要做的事情很明确:在本地搭一套AI开发环境,然后让AI从零开始把一个3D网页FPS游戏做出来。LM Studio负责运行Qwen3.8-27B本地模型,DeepSeek Harness负责进入项目目录、编写和修改代码,再持续执行后续开发任务。
环境准备完成以后,正文不会停在模型能不能对话,而是直接进入游戏开发:先搭3D场景和基础框架,再增加第一人称移动、鼠标视角、跳跃、射击、碰撞、敌人AI、血量、计分和重生。
后面还会继续扩展地图和射击细节,包括电车站场景、弹道、后坐力、击中反馈和敌人血条,让这个项目从一个基础原型逐渐变成真正可以操作和游玩的3D FPS。
整个开发过程采用分轮推进,不要求AI一次把完整游戏写完,而是让它一部分一部分完成、测试、修复和继续迭代。
最后再通过cpolar把本地运行的网页游戏提供给其他设备访问。整篇真正跑的是本地部署AI开发环境 → 让AI从零设计3D FPS → 持续增加玩法和场景 → 完成可玩的游戏 → 分享给其他设备体验这条链。

1.前提条件
📌 前置硬件要求
-
推荐配置:24G及以上显存显卡,全程流畅运行模型与代码生成,无卡顿
-
最低配置:16G显存显卡,可正常运行,部分运算会调度内存,速度稍慢
-
禁止配置:低于16G显存,极易出现闪退、显存溢出、模型加载失败问题
📦 全套安装软件清单
| Node.js(LTS版) | DeepSeek Harness运行必备基础环境 | ✅ 必装 |
| Git | 代码依赖工具,支撑智能体文件读写 | ✅ 必装 |
| LM-Studio | 本地加载、运行Qwen大模型,提供本地API接口 | ✅ 必装 |
| DeepSeek Harness(DSH) | AI智能体,自动写代码、改bug、迭代游戏项目 | ✅ 必装 |
| VS Code | 查看、编辑AI生成的游戏源码 | ⭕ 可选 |
2.安装基础运行环境
2.1 安装Node.js
作用:所有AI自动开发、代码运行的底层基础,缺一不可。
打开官网:https://nodejs.org/
下载LTS长期支持版本(切勿下载最新测试版,兼容性极差)
双击安装包,全程默认下一步,必须勾选Add to PATH(添加到系统环境变量)
安装完成后,关闭所有CMD窗口,重新打开新窗口(环境变量需重启生效)
✅ 验证安装成功:
按下 Win+R 输入 cmd 打开命令行,依次输入两行命令,均输出版本号即为成功:
node -v
npm -v

2.2 安装Git
打开官网:https://git-scm.com/,下载Windows版本安装包
双击安装,全程保持默认设置,无需修改任何参数,直接下一步到底
✅ 验证安装成功:CMD输入以下命令,输出版本号即可:
git –version

3.安装Qwen3.8-27B
首先打开LM studio的官网LM Studio Bionic – Agent for Work and Code下载,安装时一直默认下一步即可:

打开设置后,点击图中圈出的图标,下载Qwen3.8 27B:

安装完成后,对话时即可选择该模型:

打开资源库,即可看见我们下载好的模型:

4.安装DeepSeek Harness
搜索Windows Powershell,并以管理员身份运行后,执行该命令:
npx @deepseek-ai/dsh web
等待一会后,输入:y

看见wbeui地址后,就是启动成功!

4.1 配置DeepSeek Harness
根据提示,我们打开DeepSeek Harness的webui界面:

这里我们选择稍后配置:

接下来我们创建一个API Key:
前往DeepSeek官方API平台,登录你的账号,新建一个API Key。生成密钥后马上复制保存好,切记防止泄露。

设置 – 模型界面:
点击“模型” 选项:填入各提供方的 API 密钥即可使用其模型。

保存成功:

4.2 使用DeepSeek Harness
我们点击对话,会让我们选择工作区,我这里新创建目录:

接下来。给它发消息,做一下连通性测试:

5.DSH对接本地大模型
DeepSeek Harness连接LM-Studio Qwen3.8-27B
打开Qwen3.8-27B设置,点击左侧菜单栏点击本地模型 API:
把你下载在本机的Qwen3.8 27B模型包装成标准OpenAI格式API服务。 目的:

启动dsh:npx @deepseek-ai/dsh web,打开网页UI:
DeepSeek Harness的模型配置界面,正在新建一个对接LM Studio本地大模型的自定义服务提供方:
- Provider ID填了local作为内部标识,显示名称标记为Qwen3.8-27B-IQ4_XS;
- API地址填写LM Studio本地 API 地址http://127.0.0.1:1234/v1,协议选定openai-completions,用来兼容OpenAI接口规范;
- 界面提示当前模型目录为空,无法直接获取模型,需要点击添加模型手动录入模型信息,才能解除 “自定义提供方至少需要一个模型” 的限制,点亮创建提供方按钮,最终实现DSH调用LM Studio里的Qwen3.8 27B本地模型。

添加可用模型,即成功啦~

添加成功:

6.AI自动生成FPS游戏
这里不一次性提交完整需求,而是采用 极简主程序+独立模块 的方式拆分开发,把不同功能分到多轮任务中继续推进。
6.1 前期准备
电脑新建纯英文路径文件夹(禁止中文、空格、特殊符号),作为游戏项目目录
在DSH中绑定该项目文件夹,新建空白工作任务
6.2 分段下发指令(小白直接抄)
下面按模块逐轮提交需求,让AI分别完成不同功能,并在每轮之后继续测试和修改:
📌第一轮:搭建基础3D网页游戏框架
基于Three\\.js搭建极简FPS游戏主程序,创建完整项目文件结构,初始化3D场景、地面、基础视角,保证项目可正常运行。




📌第二轮:实现玩家基础操作
添加玩家第一视角,实现WASD移动、鼠标旋转视角、空格键跳跃功能,优化移动手感,修复视角卡顿bug。


📌第三轮:核心射击功能开发
添加鼠标左键射击、子弹生成与碰撞检测、射击音效,实现子弹命中判定、击中反馈效果。


📌第四轮:完善游戏玩法
添加简易敌人AI、血量系统、计分面板、重生机制,优化场景画面,修复所有运行报错。
每一轮发送后,等待AI自动完成:写代码→运行测试→捕捉报错→自动修复迭代,无需手动操作。


📌第五轮:完善背景空间
我们需要创建一个新的游戏场景,为此需要新建一个新的场景配置文件,该场景为镰仓高校前电车站,所有模型均使用程序代码实现,模型为单文件的形式,尽可能的不增加主循环的代码。 玩家活动的主要场景为电车站附近,希望电车有足够清晰的建模,配色参考图中所示,远处可以看到江之岛,天空中可以看到大片的云彩,云彩生成的效果要写实,场景中还有很多其他元素,请仔细参考图像来进行制作。所有的内容都要依次逐个生成,避免一次生成过多,导致质量降低,采用电影级别写实质感来生成。


📌第六轮:完善细节
不论是玩家还是敌人,开枪射击时,需要有弹道效果;玩家在开枪时,玩家的枪械模型需要有后坐力效果;子弹击中位置需要有击中效果;敌人增加血条

项目开发过程中仍然会遇到bug,需要继续调试、排查并调整场景逻辑和交互效果。正文在基础场景上又增加了主动寻找玩家并攻击的敌人、血包恢复和物资收集等机制,也说明这套项目可以继续沿着现有模块扩展。
前面的FPS项目已经能够在本机运行。如果希望其他设备直接打开这个网页游戏,就还需要给本地服务增加一个外部访问入口。
这里继续使用cpolar,把本机运行的游戏页面提供给局域网之外的设备访问。游戏仍然运行在自己的电脑上,cpolar负责扩展这个Web入口的访问范围。
7.安装cpolar实现外部访问
7.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
7.2 部署cpolar
cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:game,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3000
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

9.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是gamee,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
这篇真正完成的,是用一套本地AI开发环境从零做出一个3D网页FPS游戏。LM Studio负责运行Qwen本地模型,DeepSeek Harness负责进入项目目录、创建和修改代码,最终产物则直接在浏览器里运行。
游戏开发部分从最基础的3D场景开始,一步步加入第一人称移动、鼠标视角、跳跃、射击、碰撞、敌人AI、血量、计分和重生,后面又继续扩展地图、弹道、后坐力和击中反馈。
分轮提交任务在这里更像一种开发方法:它的目的不是把“上下文问题”本身当成主题,而是让AI更稳定地把一个原本复杂的游戏项目逐步做完整。真正的结果,仍然是一款可以继续试玩、修改和扩展的3D FPS。
最后加入cpolar以后,本地运行的游戏还可以从其他设备直接打开。这样整套流程就从“本地部署AI”走到了“AI实际做出游戏,再把成品分享出去”,这才是这篇文章最核心的主线。



