● onlinetty/0guest@bubucn:~$
utc+08static
可直接试玩 · 2026.08.16

ZOF//DUTY:
断电行动

一个在浏览器标签页里直接启动的波次军事射击游戏。不用安装、不用下载,也没有美术管线——下面就能进场清波。

立即试玩 正式可玩版本 · 桌面端 · 键盘 + 鼠标
ZOF//DUTY 黄昏城市战场视角
进入战场

点击画面锁定鼠标,强烈建议全屏游玩。

可直接玩 新窗口

WASD 移动 · SHIFT 疾跑 · C 蹲下/滑铲 · SPACE 跳跃 · 左键开火 · 右键瞄准 · R 换弹 · G 手雷 · 1-3 切枪 · ESC 暂停

01 — 约束条件

没有贴图,
没有模型,没有文件。

这个项目的规则简单而苛刻:零外部美术素材。整个游戏没有一张 .png、一个 .glb、一段 .wav。城市里所有表面都是运行时画进 canvas,再上传成 PBR 贴图——albedo、normal、roughness 三件套,一共大约三十组。

其他部分同理。士兵是用基础几何体拼出来的可动模型,枪械完全由代码建模,连换弹时会真的运动的枪机和弹匣都是算出来的。枪声、脚步、爆炸全部由 WebAudio 现场合成。下载下来的是“怎么画出这个游戏”的逻辑,而不是游戏的图片。

ZOF//DUTY 开火瞬间的枪口火光
十字路口的黄昏光线:沥青、店面、路面标线与路障,全部在加载时画进 canvas。
02 — 制作方法

并行的 Agent,
被一份契约约束。

项目使用 Matt ShumerGauntlet Loop 与他的 Claude of Duty prompt 构建:先做一轮,把结果交给新的批评者挑刺,修复后再测。

真正让它能放大的,是一个叫 CONTRACTS.md 的文件。它把引擎切成若干“所有权分区”——地图、武器、敌人、HUD、导演系统——并把分区之间的接口冻死:事件名、方法签名、每个模块必须返回的数据结构,全部写明。多个 agent 于是可以在互不阅读对方代码的前提下并行推进,而且每一个都必须先跑通一次干净的 vite build 才算完成。

03 — 最终成品

经得起看的街道,
会思考的敌人。

成品是一个 120×120 米的黄昏十字路口:十二栋楼、报废车辆、沙袋工事与燃烧的油桶,配 4k 阴影贴图和匹配的雾效。三种士兵会用真实的视线判断向你推进,抢占掩体、包抄侧翼、以点射节奏开火,中弹时会踉跄。

  • 三把程序化武器——M4A1、MP5,以及带瞄准镜的栓动 AX-50
  • 会抢掩体的敌方 AI:真实视线判断、侧翼包抄、点射纪律
  • MW 风格 HUD:罗盘敌标、命中提示、击杀列表、波次横幅、阵亡结算
  • 所有音效由 WebAudio 实时合成,没有一段是录音
  • ACES 色调映射、Bloom、SMAA,以及青橙电影调色