下载 App
开发日志#2:多细胞不是“更高级”,是“两条链都得活着”
6 小时前5 浏览综合
上一期写到「时代二:生命前夜」——用膜把长链裹起来,链在膜里免疫紫外线但要自食其力。 这一期做的是第三阶段:多细胞。以及一个我以为能用、结果数学上根本不成立的系统。
多细胞到底难在哪
直觉上“多细胞”应该是给细胞加分工—— 有的负责合成、有的负责代谢、有的负责维修。
我先验证这个直觉。测完发现问题不在数值,在舞台太小:
膜里只有 2 条链时,两条链完全对称
而我的“修复型”设定是「只帮严格比自己短的链」
代谢消耗 ∝ 链长 → 烧得慢的反而更长
→ 修复型永远是膜内最短那条,谁也帮不到
我又测了 7 种分工配比,min_peak 全挤在 26–29,差异在种子噪声内。
结论:不是“选哪个更好”,是一条可选的路都没有。
于是我做了个当时看起来很稳的决定:把分工降级成「沙盘推演」——可用、可玩、可观察,但不作为通关条件。我宁可少一个机制,也不愿意教玩家去找一个找不到的最优解。
★ 达成不再是终局 原来的设计里,膜内链到 12 就通关。但我想要多细胞,就把它拆成两级:
★ 膜内最长链 ≥ 12 → 阶段门:「第一个细胞诞生了,但它还不是你」
★★ 膜内 ≥2 条且每条 ≥8 → 真终局:多细胞群落
顺手发现上一版结局面板里写了句空头支票——"多细胞才带来了分工"。既然分工不是通关条件,这句话就是不诚实的。删了。

▲ 截图 1/3 · 多细胞阶段的顶栏。口径和时代二完全换了一套:
时代二看「膜内最长链」,多细胞看「群落条数 + 最短链」(第一行)。
最下面那行是分工指示器(D3 才开始有的东西)。
盯最短的那条,不是最长的——最短那条才是你现在的瓶颈。
平衡:一个“87 秒”的离群点
测 5 个种子,达成的秒数是 58 / 87 / 50 / 51 / 35,均值 56。
4/5 落在 35–58 秒,seed 2 的 87 秒是唯一离群点。逐帧查下去,发现不是“供给不够”:

膜内变成 3 条链,第三条只有 2 节。它也在缴代谢税(逐链收税),却因为不够 8 节不贡献达标 = 白养。 关键在于:这是完全合理的玩家行为。玩家不知道该在哪停手,多养一条是很自然的选择。
所以我没降门槛(那会破坏“每条都够长”的设计意图),而是让代价可见 —— 顶栏在链数超标时直接打出警告,教学也专门讲这一步。

▲ 截图 2/3 · 时代二的五张基因卡。卡面是 AI 生成的,布局和文案是代码画的——
运行时由 GDScript 装配,不是一张张手工摆的。
(写这张图时顺手修了个排版 bug:描述文字原本居中 + 裁切,
导致每张卡首尾两个字被切掉一半——这种问题只有真的把图拍出来看才发现。)
三个 bug,两个是我自己造的
① 阶段进去了,但分工没开 用了个“直达多细胞”的调试开关做验证,发现提示条不出、分工按 [9] 没反应。 根因很蠢:我先设 era3_stage = true,下一行访问阶段门 era3_gate —— 但这个调试路径从没构建过那个面板,是 null。GDScript 里空引用报错不中断外层函数,所以上面那行已生效、下面一半全没跑。
症状是「阶段进了但分工没开」,看起来像分工系统坏了。最隐蔽的一类 bug:错误只砍掉一半功能,还砍在最有迷惑性的地方。
② 一个从来没被触发过的地质年代 游戏里的时间轴是"1 秒 ≈ 200 万年"。我给多细胞加了个纪元档位,注释里还专门论证了「叙事上不算错」。
结果核一下触发时刻才发现:那个档位要 250 秒才触发,而一整局只有 50–90 秒。这个档位永远不会出现。
更要命的是——它旁边那个档位也一样是死的(要 125 秒)。它从时代三立项就躺在那儿,我之前一直以为它会响。
根因不是数字没调好,是两套语义不同的东西被塞进同一条轴:地质年代轴是时钟驱动的,而“进入多细胞”是玩家行为驱动的。硬塞进去只会得到一个要么永不触发、要么提前误触的档位。
修法是分开:年代轴按实际时长重排,行为驱动的状态用写死字符串。

▲ 截图 3/3 · 阶段门。★ 达成即定格,玩家读完这段才决定要不要继续。
这块面板是运行时新建的(不是预先摆好的),而 Godot 里
「运行时新建的 UI 层」有个坑:中文可能变豆腐块——所以它必须被真截图验过。
③ 修一个 bug,造出另一个
上一期为了防“卡被撑高导致下半截被裁掉”,给卡片的描述 Label 加了 clip_text = true。
今天目验发现:五张卡的描述文字左右两侧都被切掉了,「急冻」那个「分」字只剩右半边。
根因是 .tscn 里写死的 horizontal_alignment = 1(居中)遇上 clip_text:居中时超出部分左右各丢一半。 一个 bug 的修法会造出另一个 bug,而第二个只有真的把图拍出来看才发现。
—— 这也是我为什么坚持「headless 验不到的 UI 必须目验」。
本期结论
多细胞这个阶段,我原本以为难在“怎么设计分工”,最后发现难在“两条链都得活着,而且你还得知道第三种选择是错的”。
调平衡的时候也学了一件事:玩家做出" suboptimal"的选择,往往是因为他不知道最优解在哪。这时候该做的是把代价显示出来,而不是偷偷改规则迁就他。
下期计划
补完最后一批目验(顶层界面还有几处没看过)
把这一期踩的坑整理成一份「存档点」文档
H5 版重跑一遍字体子集(这一期新增了大量中文文案,不重生成会变豆腐块)











