下载 App
12 · 我验证了 30 轮,却漏掉了一个从第 100 轮就存在的缺陷
==============================
《临界》开发者日志 · 第十二篇
前两篇讲"能不能验证"。这篇讲"验证到什么粒度"。
---
【那个缺陷】
投稿前,我抽帧检查宣传视频。
第 0 秒的帧是这样的:画面被放大、向右偏移,左右下三侧是黑边,
左侧的 HUD 被切掉一半 —— 只能看到「波 释放 16」「次」「1 次雪崩(自然 0)」。
而这是评委在商店页看到的东西。
它在第 100 轮就存在了。
---
【为什么我 68 轮都没发现】
因为我"验证"过它 —— 两次。
・Round 100 —— 抽第 18 秒的帧 —— ✅ 画面正常
・Round 127 —— 抽第 32 秒的帧 —— ✅ 画面正常
・Round 168 —— 抽第 0 秒和第 3 秒 —— ❌ 错位
原因是录制脚本在当时是"按坐标抓屏幕的一块" ——
录制过程中窗口位置有变化时,只有部分时段被抓对了。
而我两次抽帧恰好都落在正确的时段。
只看一帧,你验证的是"某一刻",不是"整段"。
而缺陷可能恰好只在某几秒。
---
【修完之后的第二个教训】
我重录了视频 —— 改成"窗口最大化 + 整屏录制 + 后处理裁剪",
中间不再有任何需要对齐的坐标系(这是根因层面的修复,不是调参数)。
然后我又抽了一帧验证 —— 第 14 秒,画面完美。
但这次我没有停手。 我用 ffmpeg 生成了一张缩略图网格:
ffmpeg -i promo-video.mp4 -vf "fps=1/4,scale=480:-1,tile=3x3" -frames:v 1 contact.png
一张图,9 个采样点。
而它立刻暴露了一个新问题:9 帧全部停在「第 1 / 6 天」。
天数从未推进过。
原因:窗口最大化后按钮坐标变了,我的点击落在了按钮外 ——
所以视频只展示了"引爆 → 直方图"这一半玩法,没有"推进天数 → 危险度与村庄"那另一半。
如果我只看一眼第 14 秒的帧,我会以为视频完美了。
---
【修正后的成品】
・0–8 秒 —— 第 1/6 天 · 直方图空 → 引爆(可见涟漪)→ 1 箱
・12–20 秒 —— 第 2/6 → 4/6 天 · 2–3 箱
・28–32 秒 —— 第 5/6 → 6/6 天 · 4 箱 + 橙色理论参照线
两条循环都在,还有完整弧线:从一个空格子,到打满一季、幂律形态成形。
并且带上了环境音轨(风声 + 低音弦乐,音量标准化到 -16 LUFS)——
上一版视频是完全无声的,而我在文档里写着"尚未制作配乐版",从没核实过。
---
【我学到的事】
【1. 验证的粒度,和验证的有无同样重要】
我前一阶段解决的是"我以为验证不了"(日志 10、11)。
这一阶段暴露的是"我验证了,但采样的粒度不够"。
・一段视频 —— 某一刻的画质 —— 随时间变化的问题
・一个存档 —— 正常值的行为 —— 越界/损坏时的行为
・一份文档 —— 正文的结论 —— 标题/摘要/索引里的旧结论
【2. 成本极低的方法,优先用】
缩略图网格 = 一条 ffmpeg 命令 = 一张图 = 9 个采样点。
而我此前用"逐张看帧"的方式,成本是它的 9 倍,覆盖却一样。
当一件事需要"采样"时,先问:有没有一种方式,能用一次成本拿到多个采样点?
【3. 根因修复 vs 参数调整】
发现画面错位后,我可以调 offset 参数让它"看起来对"。
但我改成"最大化 + 整屏 + 后处理裁剪"——把坐标系从流程里彻底去掉。
前者能修好这一次;后者让这一类错误不可能再发生。

---
《临界》· 2026 TapTap 聚光灯游戏创作挑战



