前言(唯一的人类部分)

哦,其实并非,因为ai没有图片能力,所以图片都是我插的。

image

首先感谢豆姐,豆包工作下载即送30天会员(不是广告)

豆姐都不嫌我穷,我还怎么嫌豆姐弱呢?真的,蹬了一天了,蹬不完,根本蹬不完,别看我1天快把7天的量蹬光了,但是我今天又是更新知识库,又是同步github,又是组织迁移,又是宣发,又是让豆姐处理issue,又是整理文档记忆啥的。

omg,这都蹬不完,豆姐大气,太大气了,这不宣传一下真没话说。

对了,b站那边我发了(只有上传和发布是我干的,其他时候全是豆姐干的,ai忠诚的手这一块)。说起来豆姐不仅有全套剪辑能力(其他的没有),还有云电脑,终于不用担心电脑风扇转太快崩掉了。

太久不写md了,正在思考怎么写引用……

【AIGC】这个对战棋,是一个人两天半肝出来的 【AIGC】30 秒学会《烽决》—— 比军棋多三个玩法 【AIGC】15 秒,看懂这盘棋有多狠 【AIEC】两天半,从 0 到可玩 alpha:一个人的游戏工作室

欢迎体验,也欢迎提issue(在本博客下面留言,我会处理)

起因

《烽决》(duelchess) 是我和我的 Agent 用两天半做出来的游戏——严格说,是一套完整的「游戏工作室管线」:130 次提交、9,453 行代码(72 个文件)、74 个单元测试、173 张美术素材、30 个音效(15 类)、4 张地图,当前版本 v1.0.0-alpha.1(可玩 alpha)。

游戏做完,宣发怎么办?市场上宣发外包报价不菲,而我的团队规模是「1 个人 + 1 个 Agent」。于是我把宣发也交给了 Agent:四支视频(15s 高光 / 30s 教学 / 60s 综合 / 3min DevLog)从素材处理到成片,全部由 Agent 完成。这篇文章记录整个管线怎么搭的,以及踩过的坑。

PixPin_2026-10-01_22-00-22

一、素材:回放 JSON + 录屏帧

宣发素材来自游戏回放。每局对战有回放 JSON(每手:棋子、移动、事件),再加上浏览器录制的回放画面帧。

关键决策:不用录屏当画面主体,而是用回放数据驱动渲染。录屏帧 1800×931 横屏,塞进竖屏短视频必然糊;回放 JSON 反而给了精确的棋局状态——每手谁动了、从哪到哪、触发了什么事件(传送、铁轨滑行、吃子、炸弹同归、基地暴露、夺基地获胜)。

# 回放数据 → 每手状态快照(用官方规则引擎逐手模拟)
npx tsx sim_replay.ts replay_yongwang.json > sim_yongwang.json

模拟结果示例(第 1 手:红 5 级棋子走传送门,一步跨 9 格):

{ "turn": "blue", "move": { "id": "r12", "from": "3,2", "to": "2,9" },
  "events": ["moved", "teleport", "moved"], "via": ["2,3"] }

四个回放全部用规则引擎验证:0 非法移动。这保证了画面里的每一步棋都是规则合法的,而不是「看起来差不多」。

二、渲染引擎:五版迭代,四版被否

这是最扎心也最有价值的部分。画面渲染引擎一共写了五版:

版本方案用户反馈
v1录屏直剪拼接太粗糙
v2PIL 缩放 + 转场 + 字幕 + BGM没排版没特效,音量炸耳
v3竖屏小棋盘版字太小看不清
v3.1大棋盘裁切特写放大什么都看不见
v4PIL 从零重绘棋盘(电竞风)清晰了,但是丑
v5原美术素材 + 局部放大特写窗放大的全是无关内容

关键认知:Agent 没有眼睛,但用户有。每一版我都以为「技术上有进步」,但审美是主观且连续的——用户要的不是「更清晰」,而是「好看且看得清」。最终定稿的是 v4 重绘版(全盘 6×13 可见、44px 大字棋子数字、移动插值/爆炸/传送/胜利金光特效)+ v3 版 DevLog 长视频。

PixPin_2026-10-01_22-00-30

v4 的技术要点(PIL 渲染):

  • 规则引擎驱动:每手从快照拿棋子位置,再叠加动画——移动插值、跳跃弧线、战斗爆炸、传送光圈、胜利金光
  • 信息区排版:金线分隔 + 回合 tag + 大标题(自动缩字号 84→40px)+ 金色副题 + CTA
  • 特效打点:from 金色高亮框、to 白色脉冲框、虚线移动路径、基地暴露红框 + 「基地暴露」标签
# 每手动画帧:脉冲相位 + 特写窗平滑移动
glow_t = 0.35 + 0.65 * abs(math.sin(t * math.pi))  # 0..1 脉冲
frac   = t                                          # 特写窗 from→to 平滑

三、音量工程:先测再交付

用户第一次反馈最狠的一句是:「点开视频吓死我了,BGM 又几乎听不见。」——音量不是感觉问题,是可测的工程问题:

# 交付前必跑:整体电平 + 分段电平
ffmpeg -i out.mp4 -af volumedetect -f null - 2>&1 | grep -E "mean_volume|max_volume"

最终固化的音频链:

  • 音效:volume=0.22 + adelay 精确打点(每手节奏对齐)
  • BGM:音量 0.55~0.85,atrim 截长、片尾 afade 淡出
  • 混音:amix normalize=0(不自动压音量)+ alimiter limit=0.95(限幅防削波)
  • 验收标准:mean ≈ -20dB、max ≤ -4dB,分段抽查无炸耳段

坑:amix 输入有上限,音效多时要分组混音(每组 ≤6 个,最后再混合并加限幅器):

[bg][sf1]...[sf6]amix=inputs=7:normalize=0[g0];
[sf7]...[sf12]amix=inputs=6:normalize=0[g1];
[g0][g1]amix=inputs=2:normalize=0,alimiter=limit=0.95[mix]

四、宣发策略:Agent 也能做市场调研

视频是载体,策略是方向。Agent 用 8 个独立信源(Steamworks、The Game Marketer、SeeIndie、TrapPlan、Gamosy、Hash Hackers 等)做了独游宣发调研,结论直接落到四支视频的定位上:

  • 发布前 6-12 个月就该建社区、发 devlog——社区不是发布后才有的
  • 短视频 10-20s 的高光时刻是最大的自制流量引擎,胜过精剪大片
  • Steam 页尽早开(wishlist 收集机),Next Fest 每游戏只有一次机会
  • 微/纳米 creator(1K-25K 订阅、垂直匹配)优于大主播
  • 国内渠道:B站 UP 主/二创、抖音/小红书、好游快爆/taptap 首发资源

于是四支视频各有分工:15s 高光(短视频钩子)→ 30s 教学(内容种草)→ 60s 综合(trailer 级)→ 3min DevLog(深度内容)。

五、经验教训

  1. Agent 没有眼睛,所以要有「自检协议」:每帧渲染后 OCR 验证文字可读、抽帧拼图人工可查、音量用工具测而不是靠感觉。用户说「你会做视频吗?没有眼睛怎么做视频」——答案是把验证做成确定性的流程。
  2. 审美反馈是最高优先级信号:技术实现完成 ≠ 交付完成。五版迭代里,每一版被否都是因为「技术对了,审美不对」。把用户反馈当作需求,不要辩解说「这是技术进步」。
  3. 数据驱动画面:回放 JSON + 规则引擎模拟,比截图靠谱得多——能精确复现每一手,还能加合法动画。
  4. 音画分离、解耦迭代:画面渲染和音频合成分开,改音量不用重渲画面(-c:v copy 只换音轨)。
  5. 记忆沉淀:每轮迭代把决策、结果、踩坑写进知识库(飞书)+ 本地记忆文件,下次不再重复踩同一个坑。

结果

四支视频全部交付:15s 高光(6 手关键战术)、30s 教学(13 手规则叙事)、60s 综合(15 手完整战局)、3min DevLog(开发过程)。音频达标(mean -18.7~-21.9dB、无削波)。版本口径始终锁死:可玩 alpha,不是完成品。

游戏试玩:https://duel.tmoc.qzz.io (灵感来自军棋,棋盘更像斗兽棋)