修订说明(2026-09-30):本文记录 2026-07-06 的阶段工作。早期代理方案、样本测量和原版算法证据已重新区分,未完成事项按当时验证范围理解。后续进展见高度图还原与POI、Stamp 和植被岩石布局。
AI 协作做游戏 · 资产逆向系列 第四篇 · 场景生态篇
引子:地已经铺好了,接下来往上面填什么
本篇是地形篇的配套下篇。地形篇讲的是「一颗星球的地怎么长出来」——地形块怎么切、群系地表材质怎么程序上色、高度怎么按几档离散生成。那一篇结束时,我们手里有一颗地已经铺好、但光秃秃的星球。这一篇接着讲:这片地上,该长什么、该盖什么。
地铺好了,把关卡打开细看,会发现一件事:它更像一片「地形正确的空场」,而不是一颗「活着的星球」。
真实的星球不是光秃秃的地。森林要像森林——高树成片、灌木填空、地表铺草,层次分明;殖民地要像殖民地——主建筑立着、围墙圈地、货箱散在门口。这种「一看就对」的感觉,不来自地形本身,而来自填充的规律:什么地方该长什么、怎么分层、按什么密度。
而且,一旦意识到这款游戏有四百多颗星球,就会明白这层填充基本上只能走程序化。四百颗星球,每颗都要铺满植被、点缀聚落——若靠美术手工摆放,那是几百人月的工作量,做完还无法维护:改一棵树的模型,得回到四百张地图里逐一替换。这种量级下,几乎没有团队会选手工路线。最现实的做法,是把「怎么填」抽象成一套规则,让机器按规则去填。 美术产出的不是「四百张地图」,而是「一套植被 / 建筑库 + 一套填充规则」;四百颗星球,是这套规则配上四百个随机种子跑出来的。这一篇要还原的,正是这套规则——它是这类开放世界能以有限人力撑起海量星球的关键原因之一。
这一篇讲的就是这层规律。而且我们会发现,这层填充和地形篇里的地形生成,是同一套思路的延续——都是「规则 + 库存 + 种子」的装配:给定一套规则、一个资产库存、一个随机种子,装配出一片该有的样子。地形篇用它生成「地」,本篇用它填充「物」。
具体到「填物」,这款游戏用了两套并行的填充系统:
- 自然侧——靠生态群系(biome,正是地形篇里决定地表材质的那个 biome)驱动,铺植被;
- 人造侧——靠阵营 + 模块套件驱动,拼建筑。
两套系统各管一半世界,却是同一种思路。把这两套讲透,加上地形篇的地形生成,就凑齐了这类开放世界「怎么从零装配出一颗星球」的完整图景。
一、两套填充系统的分野
先立个骨架。把两套系统摊开对照,会发现它们在分析层面上呈现出高度对称的结构(这是我们归类后看出来的对称,未必是原作有意的对称设计——但作为理解和复现的框架,这个对称非常好用):
| 维度 | 自然侧(植被) | 人造侧(建筑) |
|---|---|---|
| 驱动逻辑 | 生物群系 biome | 阵营 + 模块套件 |
| 资产规模 | 258 种 | 732 件 |
| 主体层 | 主植被(高树)81 | 主体结构(建筑本体)393 |
| 附属层 | 灌木丛 37 | 附属道具(货箱/储罐)174 |
| 基底/边界层 | 底层地被(草蕨) | 围墙 / 栏杆 / 边界 165 |
| 归属维度 | 星球属于哪个群系 | 建筑属于哪个阵营 |
这张表是整篇的题眼。两侧都是「主体 + 附属 + 边界」的三层结构——自然界的高树/灌木/地被,对应人造界的主建筑/道具/围墙。填充系统不关心「这是棵树还是栋楼」,它关心的是层级角色:谁是骨架,谁填空,谁划界。
理解了这个对称,下面两章其实是「同一个方法,用在两种资产上」。

二、自然侧:按生态群系铺植被
星球 → 群系 → 植被列表
第一个问题:哪颗星球该长什么植被?
这款游戏的星球不是一张张手工做的地图,而是「模板 + 种子」装配出来的。每颗星球挂一个地形模板,模板名里就写着它属于哪个生物群系。顺着这条线,就能把「星球 → 群系 → 植被」串起来。
举两颗辨识度高的星球(用它们的社区通名):
- 一颗「熔火」型星球,地形模板是「干旱森林苔原」,落在森林群系——它的植被列表有 49 种,全是森林系:高树、异形地标树、松树、红杉、成套的灌木丛。
- 一颗「血色丛林」型星球,地形模板是「蓝色原始丛林」,落在沼泽/原始群系——36 种植被,全换了一批:枯萎的异形巨树、大中小三档原始灌木。
这两颗星球的植被列表几乎不重叠。 这就是群系驱动的意义——换一个模板,整片植被换一套。而同样挂「原始丛林」模板的另一颗星球(虫族方向的),植被集则和「血色丛林」高度一致,反证了「模板决定植被集」这条规律成立。
再往下铺开,规律更清楚。挑不同群系各取一颗代表:
| 星球(社区通名) | 地形模板 | 群系 | 植被数 |
|---|---|---|---|
| 熔火型 | 干旱森林苔原 | 森林 | 49 |
| 血色丛林型 | 蓝色原始丛林 | 沼泽 / 原始 | 36 |
| 苔沼型 | 苔原沼泽 | 荒沼(moor) | 49 |
| 湿沼型 | 标准沼泽 | 沼泽(swamp) | 36 |
看这张表会发现一件事:决定植被列表的不是「星球叫什么」,是「它挂哪个地形模板」。 森林系的星球共用一份森林植被集,沼泽系的共用一份沼泽植被集——星球名只是标签,模板才是那把钥匙。这也是为什么后面打标签时,我们宁可信「模板名」也不信「星球类型字段」(下面就会讲到这个坑)。
把这条规律铺到全部四百多颗星球上,会看到一张很整齐的图:几十种地形模板,每种对应一份固定的植被集;四百多颗星球,其实是这几十份植被集的反复复用。没有哪颗星球有「专属植被」——它们都是从群系库里领同一批资产,换个种子重新撒一遍。 这也解释了为什么这游戏能有海量星球却不撑爆资产量:星球是廉价的组合,植被是共享的库存。
这里顺带纠正一个我们做的时候踩过的坑:星球数据里本来有个「星球类型」字段,最直觉的做法是直接读它来判群系。但实测这个字段系统性错位(本该是 A 群系的读成了 B),拿它判会整片错。最后改用「地形模板名 + 区域名」来判,才对上。又一次,最显眼的那个字段是不可信的。

共生层级:主树、伴生灌木、地被
共现能说明资源经常成组出现,不能单独证明生态共生或运行时按相同规则生成。它可能来自共同父资源、Prefab 或场景制作;具体生成职责要继续追踪。
统计下来,共生关系很清晰:
- 蕨类丛:某种草地蕨总和另一种蕨成对出现(18 个区块共现)——这是地被层的固定搭配;
- 灌木成对:森林灌木套件的两个变体几乎从不单独出现(14 个区块)——填空用的中层;
- 松灌成对:苔原松树的两种灌木形态绑在一起(11 个区块)。
把这些组合按命名语义归层,得到一张三层结构:主植被(含地标高树)81 种 / 灌木层 37 种 / 底层地被。这就是在引擎里还原一片森林时,该照着搭的层次——先落主树定骨架,再撒灌木填中层,最后铺地被封底。
共现数据里还藏着一个更细的现象,值得单独说。普通森林高树的共生伙伴,清一色是森林灌木——forest_hero_tree_01 身边总是森林灌木套件。但那几棵异形地标树(alien_hero_tree)不一样,它们的共生伙伴里混进了原始群系的枯萎灌木。换句话说,地标树会跨群系借用附属植被——一棵森林里的异形巨树,脚下配的不是普通森林灌木,而是从原始/沼泽群系借来的枯萎灌木,来烘托它「异质、突兀」的地标感。这种细节,光看资产列表看不出来,只有把「谁和谁总在一起」统计出来才会浮现。它也提醒我们:层级不是死板的「森林树只配森林灌木」,共生规律本身带着美术意图。
早期原型采用 0.9、0.8、0.5、1.0 等权重配置;这些数值在本文未给出可复查的统计推导,不能称为原版生成权重。抽选权重影响候选被选中的相对概率,密度控制单位面积的候选量,最小间距控制空间排斥。地标树少而醒目,需要单独的密度与间距配置,不能从权重高低直接推出。

标签与权重
最后是给 258 种植被逐一打标签,供引擎批量配置。有名字的树(118 种)直接按命名判群系;没名字的(140 种),靠它出现的区块反推群系。
这里有个值得说的细节:命名会骗人。 有一种树名字里带「森林」,按名字该归森林群系;但看它实际出现的区块,全是「超级地球城市」环境——它其实是城市绿化树,不是野生森林树。是「实际出现在哪」纠正了「名字叫什么」。 这一条,纯靠命名的方案会全错,靠区块共现才对。
三、人造侧:按阵营 + 模块拼建筑
现在换到人造侧。方法完全平移过来,只是驱动维度从「生物群系」换成「阵营」。
建筑 → 阵营映射
建筑天生比植被好归类——它的命名带阵营前缀。 732 件建筑资产,按前缀一分:
- 超级地球(人类):457 件,占大头——居住舱、殖民建筑、货箱、栏杆,一整套人类前哨;
- 赛博/机械阵营:114 件——容器、爆破电池、屏障;
- 光能阵营:71 件;
- 虫族:27 件——不是「建筑」而是虫巢的墙、洞穴桥、岩壁;
- 无前缀的:61 件,靠区块反推。
阵营之于建筑,正如群系之于植被——它决定了这片人造聚落该长什么样。人类殖民地是方正的居住舱,虫族「建筑」是有机的巢穴壁。
拼装层级:主体、附属、围墙
和植被的三层能对应上,建筑也可以拆成三层:
- 主体结构 393 件——居住舱、塔、地堡、殖民楼、桥,聚落的骨架;
- 围墙 / 边界 165 件——墙、栅栏、栏杆、立柱、大门,圈出聚落的范围;
- 附属 / 道具 174 件——货箱、储罐、管道、路障,散在主体周围的填充物。
聚落的固定组合
最有意思的是建筑的共现——它揭示了「一套人类前哨」的标准配置。统计哪些建筑总在同一区块出现,排在最前的几乎全是货箱组合:
- 小货箱 + 中货箱:203 个区块一起出现;
- 大货箱 + 小货箱:197 个;
- 大货箱 + 中货箱:166 个;
- 小货箱 + 栅栏:139 个;
- 小货箱 + 栏杆:137 个;
- 货箱 + 地面板、货箱 + 旗杆:各 120 上下。
这就是「人类前哨」的配方——数个不同尺寸的货箱聚拢,垫一块地面板,外围环绕栅栏栏杆,插一根旗杆。它的固定程度,和植被里「蕨类丛总成对」是同一回事:并非随机散布,而是有搭配规律的模块组合。把这份共现榜单从上往下读,几乎能读出一座人类补给点的施工顺序——先垫地面、堆货箱、圈栅栏、立旗杆。
把这个配方拆开看,会发现它的结构和现实里的临时营地惊人地像:核心是补给(货箱),外圈是边界(栅栏栏杆),中间留出通行空间。 这不是美术随意摆放的,是一套被反复复用的「聚落模板」——就像植被的「地形模板决定植被集」,建筑这边是「聚落模板决定模块组合」。同一套货箱围栏配方,换个位置、换个朝向、加减几个模块,就能生成成百上千个看起来各不相同、实则同源的人类前哨。
而榜单再往下读,还藏着第二种人类聚落:战壕墙 + 立柱(132 个区块)。这组和货箱前哨完全不同——它是战壕工事,墙段接立柱、连成防线。也就是说,人类阵营其实有两套聚落逻辑:开阔地上的「补给前哨」(货箱 + 围栏)和防御带上的「战壕工事」(墙 + 立柱)。共现数据把这两类聚落各自的固定配方都暴露了出来——它们各有各的模块套件,各有各的搭配规律,却都是「聚落模板」这同一个思路的产物。
不同阵营的「聚落逻辑」也截然不同,这从资产结构就能读出来。人类阵营的 457 件里,居住舱、货箱、栏杆占大头——是「模块化拼装」思路,以方正的预制件如搭积木般拼装。而虫族的 27 件几乎没有「建筑」意义上的东西,全是巢穴的墙、洞穴桥、岩壁——是「有机生长」思路,没有可拼装的模块,只有连续的生物结构。阵营不只决定长什么样,还决定「怎么组织」:人类依靠拼装,虫族依靠生长。这一点,正是「按阵营驱动填充」比「按视觉风格分类」更本质的地方——它抓的是生成逻辑,不是外观。

四、两套系统的共同边界
讲到这里,两套系统的能力和局限都露出来了。而它们的边界,是同一条线。
都能填对局部。 给定一颗森林星球,能列出它该有的植被、分好层、打好标签;给定一片人类聚落,能识别它的阵营、拆出主体/围墙/附属、认出货箱前哨的配方。局部是对的。
当时尚未恢复本局资源选择和精确实例布局。本文的分层与共现关系属于样本分析,不能据此确定原版的完整散布规则,也不能将未取得的输入直接认定为加密数据。后续验证需要独立检查每条生成路径。
- 自然侧:「哪棵树只长在这张具体地图上」拿不到,只能到「森林星球用森林植被」的群系粒度;
- 人造侧:「这片聚落按什么规则拼这些模块」拿不到,只能到「人类阵营用这套货箱围墙」的阵营粒度。
这其实是这套逆向工作反复撞见的同一个结论,从地形到几何摆放到生态填充,一路复现:规则可逆,具体实例的精确编排不可逆。 能还原到群系/阵营粒度的填充规律,再往上是黑盒。

五、在引擎里还原
有了这两套数据,在引擎里配置就有据可依了——这正是「把资产搬进来之后」该做、却常常没人做的一层。
建筑侧:拿阵营标签 + 拼装层级,把模块化建筑组织成可复用的预制单元。人类聚落做成一个个「前哨预制体」——核心放主体结构,按共现配方把货箱成组纳入,外圈用围墙模块圈边界;整个预制体打上阵营标签,需要时整组实例化、换朝向复用。虫族这种有机结构则不走拼装,直接当整块地貌资产铺。关键是让「聚落」成为一个可复用的单位,而不是把几百个货箱一个个手摆。
两侧都不是「把资产一个个手摆」,而是「给引擎一套规则 + 一个库存,让它自己填」——这才是程序化填充的本意,也是这两套逆向数据真正的用武之地。
值得强调的是,这一层恰恰是「资产逆向」最容易被忽略、也最有价值的一步。 前几篇将资产从二进制中提取、导入引擎、复位摆放——做完这些,你手里是一堆「正确的零件」。但零件不会自己长成世界。真正让一片空地变成「一眼就认得出是哪种星球」的,是这套填充规则。逆向的终点不是「拿到资产」,而是「拿到把资产组织成世界的方法」。

六、落到 UE5:填充系统怎么真正跑起来
前面讲的是「原则」——给引擎一套规则和一个库存,让它自己填。这一节讲「工程」:真要在 UE5 里把这两套填充跑起来,应如何构建。(更细的算法推导、参数标定和 showcase,留给配套的落地专篇;本节讲清骨架和每一步的关键决策。)
原型选择在 CPU 上生成可复现的摆放点集,再交给引擎实例化。跨端一致还需要相同版本、配置、资产、随机调用顺序和数值规则,并通过摘要或逐项比较验证。Seed 是输入的一部分,不能代替全部会话数据;出现差异时仍需要定位、拒绝或修复。
不过「确定性」在工程上不是白拿的——真要做到各端逐位一致,还得处理两类现实问题:一是浮点误差(不同 CPU/编译器/优化档下浮点运算可能有微小差异,采样点算出来差之毫厘就会级联放大),实践中要么锁定浮点行为、要么关键路径用定点数或整数化的哈希采样;二是实例化顺序一致性(同一批点集,若各端的遍历/生成顺序不同,随机流的使用顺序就乱了),要保证种子驱动的迭代顺序在各端严格相同。这些是「确定性散布」从架构描述落到能上线的工程方案时,真正要啃的细节——本文只标出它们的存在,具体处理留给落地专篇。
6.1 先承接地形篇输出的「地」
填充的第一步并非放置资产,而是读取地形。地形篇在 loading 期已经算出了这颗星球的地形,并且——这一点是衔接的关键——它同时标好了语义分区:哪里是缓坡(可长密林)、哪里是陡崖(只挂稀疏植被,或干脆不长)、哪里是被压平的基地(放建筑、清空植被)、哪里是道路(两侧散布、路面清空)。
填充层不重新判断地形,直接读这份分区。 这就是「上下篇承接」在工程上的实际含义:地形篇的输出不只是一张高度图,还是一张「哪里该长什么类型」的语义图。填充依此散布,才不会把树种到崖壁上、把货箱堆到路中间。两篇在这里真正咬合成一条流水线——地形负责「地长成什么样 + 每块地是什么性质」,填充负责「按性质往上放东西」。
6.2 植被侧:群系驱动的确定性散布
散布分三层,都在 loading 期由 CPU 按种子算:
- 主植被——在「可长树的缓坡分区」内做泊松盘采样。泊松盘的意思是「撒点时保证任意两点不小于某个最小间距」——概念虽抽象,效果却很直观:生成的树木不会聚集成团,而是均匀而自然地铺开。地标高树用更大的最小间距、更低的密度,这样它自然呈现「少而醒目」,符合它作为视觉焦点的定位。
- 灌木层——这是最能体现「共生数据有用」的一步。灌木不独立撒,而是跟着主树刷:算完主树后,在每棵主树周围一定半径内,按共生表指定的伴生种做二次采样。这个「伴生种」并非主观臆定——逆向数据里,
forest_hero_tree_01的共现伙伴前三名就是forest_bush_set_01_01(7 个区块共现)等森林灌木;配置里就照这个填。这样刷出来的森林,天然是「树下有灌木」的层次,而不是「一层树、一层灌木」各撒各的、互不相干。共现统计在这里从「一张分析表」变成了「刷新规则」。
- 地被——最高密度铺满地表,但避开道路和基地压平区。

这里采用 CPU 点集作为原型的摆放输入,Foliage 或 PCG 负责后续实例化。PCG 也有可设置 Seed 的生成方式;是否能满足跨端复现,取决于实际图、输入、版本和执行方式,本文没有完成这项验证。不能把原型的职责划分写成引擎的固有限制。
6.3 建筑侧:阵营驱动的聚落预制体
建筑这边的落地单位,比植被大一级——不是「单个货箱」,是「一整套聚落」。
把「阵营→建筑分层」和「前哨配方」固化成一个聚落预制体库。每个阵营一组预制体:人类的「货箱前哨」就是照逆向出的共现配方拼的——主体结构打底,按 小货箱+中货箱(203 区块)、货箱+栅栏(139 区块)这些真实配方将附属与边界成组纳入。这不是随意摆放若干箱体,是把「原作里总一起出现的那套组合」固化成一个可复用单元。
放置时,在地形的「基地压平分区」按种子选阵营、选预制体、定位、转朝向,然后整组实例化。人类聚落走这套预制体拼装;虫族那 27 件有机结构不适用此方式(它们没有可拼的模块,是连续的巢穴壁),直接作为整块地貌资产铺设。「聚落是最小放置单位」兼顾了效率与真实感:一次实例化一整组,远比逐个手工放置数百个货箱高效;而且摆出来天然「成套」,因为组合本身就是从原作共现里提取而来的。
6.4 两套填充与地形共用一条 loading 流水线
最后把三步梳理其时序。地形在 loading 期烘高度场、标语义分区;植被和建筑紧接着在同一个 loading 期读分区、算散布、放聚落。三者是同一条流水线上的相邻工序,共享同一个种子、同一份分区数据、同一条「CPU 权威」的总原则。种子一定,这颗星球的地形、植被、建筑便全部确定,且联机每个客户端算出的完全一样。

这套方案值得如此设计,而不是为求省事采用 PCG 随机散布、或手工搭建若干模板关卡,原因就两条,但都很硬:
- 跨端一致——CPU 纯函数 + 种子,保证联机各端算出的世界在每一棵树、每一个货箱的层面上保持一致;PCG 随机和手摆都做不到确定性重放。对多人游戏而言这是根基,而非可选的优化项。
- 生态真实——随机散布得到的是「均匀草坪」,观感失真;而群系配置 + 共生跟随刷出来的,是「主树成片、灌木依树、地被封底」的分层生态,和原作对得上。真实感并非依靠堆砌更多资产,而是源于填充规则里的层级和共生长出来的。
本节讲的是落地骨架与关键决策。散布算法的完整形式、参数数值(密度 / 最小间距 / 共生半径的具体标定)、showcase 截图与联机一致性实测,留给配套的填充落地专篇(对称地形篇的《UE5 完整实现》那篇)。此处已经定死的是骨架:CPU 确定性散布、群系 / 阵营驱动、与地形篇共用一条 loading 烘焙流水线。
七、几条可迁移的方法:不只对这一款游戏成立
把这一篇(连同前几篇)的经验抽出来,有几条方法不只适用于这一款游戏,而是逆向任何「程序化装配的世界」都用得上。
其一:名字是不可信的元数据,得用「实际出现在哪」纠正。 这条教训在本系列反复应验——上一篇是「材质名会骗人」(叫 Billboard 的材质其实用在主体),这一篇是「植被名会骗人」(名字带「森林」的树其实是城市绿化)。规律是一致的:资产的命名是给美术看的标签,不是给逆向者用的分类依据。 命名可能沿用了旧资产、可能是复制粘贴时忘了改、可能纯粹是习惯。真正可靠的分类信号,是「这个资产实际出现在哪些场景里」——用共现和上下文去纠正命名,几乎每次都能捞回一批被名字带偏的件。
其三:分清「规则可逆」与「实例不可逆」,别把话说满。 这是本篇(和地形篇)共同撞到的墙:能还原到「森林星球用森林植被」这类规则,还原不了「这颗具体星球用哪个种子、精确长成什么样」这个实例。这条界线必须老老实实划清——能做到群系/阵营的粒度,就说群系/阵营的粒度,不含糊地说「全还原了」。 逆向工作最容易出的错,不是能力不足,而是把「还原了规律」夸大成「还原了一切」。承认边界,结论才站得住。
其四:世界是「装配」出来的,逆向的目标是拿到「装配图」。 从地形到植被到建筑,一路看下来,这类开放世界的共同底层是:内容不是手工做的,是「规则库 + 组合 + 种子」装配的。 那么逆向的终点,就不该停在「拿到了多少资产」,而应推进到「拿到了这套装配图」——哪些是可复用的层、用什么维度驱动、按什么规律组合。拿到装配图,才谈得上在自己的引擎里复现同样的「以少驭多」。
这四条,是这套逆向工作沉淀下来的通用方法,比「这款游戏有哪些树」有用得多。

八、总结:和地形篇合起来,就是一颗星球
把这一篇收束成一句话:地形篇让地长出来,这一篇让地上的东西长得像那颗星球该有的样子。
两篇合起来,正好是一颗程序化星球的完整装配线:
- 地形篇——用「规则 + 库存 + 种子」生成地:切块、上色、定高度;
- 本篇——用同一套思路填充物:自然侧按群系铺植被,人造侧按阵营拼建筑。
对想做开放世界的人,真正可迁移的不是「HD2 有哪些树、哪些楼」,而是这套装配思路的骨架:世界不是手工搭的,是「规则库 + 组合 + 种子」装配出来的;地是这么来的,物也是这么填的;把内容拆成可复用的层(地形的高度档 / 填充的主体·附属·边界),用一个归属维度(群系 / 阵营)驱动,用共现规律定组合。星球再多,也只是同一套规则库的重新装配。理解了这套骨架,就理解了这类游戏「怎么用有限的资产,装配出一整片看不到边的世界」。
九、AI 协作复盘
这是本系列的固定栏目:记录做这一篇时,人和 AI 具体怎么配合、哪里翻了车、人怎么补的位。
AI 帮上忙的地方:
- 两套系统的对称是「跑数据跑出来的」。一开始只是分别分析植被和建筑,是在把两边的层级分布并排列出来时,才发现「主体 81/393、附属 37/174、边界 —/165」这种结构对称——这个「两套填充系统同构」的题眼,不是先想到再验证,是先跑出数据、再从数据里看出概念。AI 在「批量归类 + 统计对照」上,能把隐藏的结构统计出来。
- 建筑分析是植被方法的平移。植被做完 req1/2/3(星球映射/共生层级/标签),建筑几乎是同一套脚本换个驱动维度(群系→阵营)就跑出来了。已验证的方法复用,AI 迁移得很快。
翻车与人的补位:
- 「合写还是分写」是人把方向定住的。AI 一开始默认「植被单独成篇」,是人追问「分两篇会不会资料不足」,才逼出「两套系统同构、合写反而更充实」这个更好的结构。AI 容易顺着惯性推进,人的一个反问能把选题拔高一个层次。
- 「命名会骗人」再次应验。植被里那棵「名字带森林、实为城市绿化」的树,和上一篇「材质名误导」是同一类坑——在这款游戏里,名字是不可信的元数据,得靠「实际出现在哪/实际几何是什么」来纠正。 这条教训跨篇复现,说明它是这套逆向工作的通则,不是偶发。
怎么解决的:把「先跑数据再提概念」当默认节奏(不先下结论),把选题方向交给人在回路里校准,把每一处能力边界都绑定到「能/不能」的明确表述。这一套下来,才让「两套填充系统」这个概念既有真数据支撑、又没有夸大。