0行手写代码,我用AI做了一个打工人模拟器(含3D霓虹城市漫游)

0 阅读6分钟

⚠️ 先说清楚:这篇文章里的整个项目——包括后端、前端、游戏逻辑、UI、3D 场景、甚至插图——全部由 AI 生成,我(作者)一行手写代码都没写。我做的事只有:提需求、验收、调数值、改文案。如果你也在关注「AI 到底能做出什么程度的项目」,这篇可能会给你一些参考。


🧱 这是个什么游戏?

打工人模拟器·城市求生 —— 一个终端风格的文字冒险 + 模拟经营游戏。

你从乡下揣着 500 块钱 来到大城市,什么都没有。搬砖、送外卖、捡废品、摆地摊……先活下去。然后攒钱学技能、考证书、跳槽涨工资、谈恋爱、结婚、买房买车、炒股买彩票……一路卷到在这座霓虹都市里站稳脚跟。

最离谱的是,它还内置了一个 Three.js 做的第三人称 3D 城市——打工人累了,随时可以切进 3D 模式,在深夜的霓虹街道上散步、看月亮、从街尾走到街尾,逛够了再回来继续打工。

开源地址:Gitee - worker-simulation(MIT License)


🎮 玩法全景

开局:一张身份证,四维技能点

创建角色时选姓名、性别、性格、学历、专业,然后分配四维技能点:体力 / 智力 / 魅力 / 运气。

  • 体力影响打工时长和恢复速度
  • 智力影响学习速度和考试通过率
  • 魅力影响社交、摆摊、购物加成
  • 运气影响随机事件和彩票中奖率

普通职业:先活下去

人才市场里有十几份体力活:发传单、搬砖、外卖骑手、快递员、售楼、会所迎宾、保安、服务员、收银员、服装店员……时薪 8~16 元。

打工人不想去人才市场也能活:街头 scrap 捡废品、stall 摆地摊,运气和魅力加成。

培训 + 考证:阶层跃迁

攒够学费去培训中心学 6 门课:会计、计算机、厨师、电工、焊工、美容美发。学满熟练度 → 交费考试 → 拿证书。

证书是最大的分水岭:持证上岗的特殊职业(初级会计、程序员、电工、焊工、厨师、会计主管)时薪 20~44 元,直接碾压普通体力活。

衣食住行:打工人的每一天

  • 🍜 饮食系统:路边摊、沙县、串串、火锅、自己做饭……恢复饱腹/体力/心情
  • 🏠 住宿系统:睡大街(有被偷风险)、桥洞、日租房、青旅、城中村单间(月租)、公寓
  • 🛍️ 商场购物:衣服/裤子/手表/手机/宠物猫,提升魅力与声望;部分工作对着装有硬性要求

社交恋爱:从陌生人到结婚

大街上随机遇到陌生人,工作中认识同事。聊天、请客、送礼加好感:

  • 30 → 朋友
  • 50 → 暧昧
  • 60 → 表白恋爱
  • 90 → 求婚结婚

资产与理财

  • 🏡 多套房源 + 多款车型:买房买车涨声望、解锁免费住宿、配送提效、商铺日租
  • 🏦 银行存款:现金存银行吃日息,支持定期理财
  • 📈 股票投资:交易大厅实时行情,低买高卖赚差价
  • 🎫 娱乐:刮刮乐、双色球(每日开奖,头奖 500 万)、台球、KTV、公园赌局

随机事件:运气属性左右人生

捡钱包、被偷、暴雨、老乡请客、城管驱赶、临时加班……运气值高的人总能遇到好事。

时间系统:1 游戏分钟 = 1 现实秒

一天 1440 分钟 = 24 分钟现实时间。支持暂停 / 1× / 2× / 4× 倍速,昼夜循环。

存档:3 个手动槽位 + 每日清晨自动存档,JSON 格式可备份。


🌃 自由模式:3D 霓虹城市漫游

这是我觉得最惊艳的部分。

在终端游戏页点击「🌃 自由模式」按钮,直接跳进一个基于 Three.js 的第三人称 3D 城市:

  • 🚶 WASD 行走,鼠标拖拽旋转视角,靠近地点按 E 进入
  • 🗺️ 28 个地点与终端模式地图一一对应——人才市场、商场、银行、4S 店、美食街、夜市、鬼市、公园、KTV、私人会所……
  • 🌗 昼夜同步:进入自由模式时自动对齐终端游戏时间,日出日落、街灯亮起完全一致
  • 🏙️ AI 生成街景:摩天楼、路灯、行道树、车辆,GPU 自适应画质,低配自动降级
  • 🧭 小地图雷达:右上角雷达显示附近地点与朝向
  • 🚪 一键返回:逛够了随时切回终端模式继续打工,时间与金钱完全互通

自由模式是「放松漫游」视角:你可以在无人的深夜街头漫步、在江边看月亮、从街尾走到街尾;想认真打拼时,回到终端模式继续搬砖。


🛠️ 技术架构

层技术
后端Spring Boot 3.3.5(Java 21+)+ Jackson
模板Thymeleaf
终端模式jQuery 3.7.1 + xterm.js 5.3.0(终端渲染)+ FitAddon
自由模式Three.js(WebGL 第三人称 3D)+ AI 生成贴图
配置游戏数值全部外置于 JSON 文件(config/game-config.json)
存档运行时写入 saves/ 目录(JSON)

游戏数值(职业、课程、物价、事件、成就)全部外置 JSON,改完重启即生效——相当于「换一个配置文件就是另一个游戏」。


🚀 怎么跑起来

# 源码运行
cd worker-simulation
./mvnw spring-boot:run

# 或打包运行
./mvnw -DskipTests package
java -jar target/worker-simulator-1.0.0.jar

启动后浏览器打开 http://localhost:8897 直接开肝。


🤖 关于「全 AI 生成」这件事

老实说,我自己也没想到 AI 能做到这个程度。

整个项目从第一行代码到最终可玩的状态,经历了十几轮迭代:从最粗糙的「命令行加减钱」,到完整的职业系统、社交系统、资产系统、随机事件、成就系统,最后加上 Three.js 3D 自由模式——每一步都是我用自然语言描述需求,AI 写代码,我跑起来验收,不满意就继续提要求。

我学到的几件事:

  1. AI 写代码的速度远超想象:一个完整的游戏引擎 + 28 个地点 + 3D 城市,核心代码量不小,但 AI 几轮迭代就能跑通。
  2. 「提需求 + 验收」本身就是核心能力:AI 能写代码,但它不知道你要什么。需求描述越精确、验收标准越清晰,出来的东西质量越高。
  3. 外置配置 + JSON 化是正确的架构决策:数值全外置,改数值不用动代码——这让 AI 每次调整都非常安全。
  4. 3D 场景是惊喜:本来只是想做个文字模拟游戏,最后 AI 顺手把 Three.js 3D 漫游也做出来了,质量还出乎意料地好。

如果你也在做 AI 编程实验,这个项目的代码结构、配置外置方式、迭代流程都可以参考。


📄 许可证

MIT License —— 可自由使用、修改、分发与商用,仅需保留版权声明。

🔗 Gitee 仓库:gitee.com/itsunhao/wo…

欢迎 star、fork、提 issue、改数值做你自己的版本。