
Cataclysm-DDA 模组实战解析Backrooms 全室内世界生成转换模组【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA本篇技术指南围绕 Cataclysm: Dark Days Ahead以下简称 CDDA官方仓库内置的 Backrooms 模组展开系统讲解其全室内世界生成indoor-only worldgen conversion的设计思路、安装启动流程、背后的 JSON 数据实现原理以及前期的生存策略。读者读完可以掌握如何启用并体验该模组、理解 CDDA 总转换total_conversion类模组通过区域配置、场景黑名单与地图额外事件map extra改造整个世界的完整链路并能直接对照仓库源码验证每一步实现。模组是什么一个无限延伸的室内世界Backrooms后室是一类源自网络都市传说的恐怖场景设定无限蔓延的褪色黄地毯、嗡嗡作响的荧光灯与单调乏味的室内装潢。这个模组把整套设定搬进了 CDDA将游戏默认的开放世界彻底替换为无限蜿蜒的后室没有城市、没有农场、没有森林、没有荒野。只有永无止境的昏暗室内空间、空荡荡的会议室与荒凉的休息室。从 data/mods/Backrooms/README.md 的定位来看这是一次完整的地图/世界生成总转换原版世界里你熟悉的每一个要素河流、森林、道路、城市都被移除取而代之的是由程序化生成的室内房间迷宫。启动前必读必须选择 Backrooms 场景模组 README 开篇即给出最关键的警告创建角色时必须选择 Backrooms 场景原因很直接后室已是整个世界的唯一区域任何尝试从其他地点开始游戏的角色都将无法生成spawn 失败。这一约束不仅在 README 中强调也在数据层被强制实现——见 data/mods/Backrooms/scenarios.json{ type: SCENARIO_BLACKLIST, subtype: whitelist, scenarios: [ backroom_dweller, backroom_dweller_starternpc ] }这是一个白名单式场景黑名单除backroom_dwellerBackrooms与backroom_dweller_starternpcBackrooms NPC EDITION之外的所有场景都被禁用。两个场景的points均为 0allowed_locs都指向唯一的出生点sloc_backrooms其terrain为backfloorchamber后室大厅。同时模组的modinfo.json也明确标注Play Now! (Default Scenario) is not supported进一步提示玩家默认快速开局方式不可用必须手动选择场景。模组元信息与兼容性在 data/mods/Backrooms/modinfo.json 中可以看到模组的完整元数据{ type: MOD_INFO, id: backrooms, name: The Backrooms, authors: [ TGW ], maintainers: [ onura46 ], category: total_conversion, conflicts: [ aftershock_exoplanet, desertpack, tropicata, classic_zombies, innawood, Isolation_Protocol, no_hope ], dependencies: [ dda ], version: 0.1 }值得关注的信息点分类total_conversion总转换与其它同样替换世界生成的模组天然冲突因此声明了一组conflicts包括废土化开局模组 Innawood、经典僵尸 Classic Zombies 等依赖仅依赖原版dda不引入任何第三方依赖外部选项模组通过EXTERNAL_OPTION把DEFAULT_REGION指向default_backrooms从启动层面强制将默认区域切换为后室区域。关于兼容性README 的回答是应该没问题除要求访问世界生成并依赖 Backrooms 场景外它可与大多数模组共存。例如开启 Magiclysm 魔法模组后后室的书架上甚至能刷出魔法书。世界生成原理区域配置如何抹掉整个世界作为总转换模组Backrooms 的核心改造落在区域配置上集中在 data/mods/Backrooms/region_settings/region_settings/regional_map_settings.json。这份文件是理解室内世界如何形成的钥匙。1. 移除一切自然地貌区域主体配置default_backrooms以copy-from: default继承原版区域然后把所有外部地貌字段置空rivers: null, lakes: null, ocean: null, forests: null, ravines: null, forest_trails: null, highways: null, cities: no_cities, neighbor_connections: false, place_roads: false河流、湖泊、海洋、森林、峡谷、林间小径、公路全部被清空城市使用no_cities相邻区域连接与道路铺设一并关闭。世界从此只剩一种地形。2. 默认地图块default_oter铺满大厅紧接着default_oter用 21 格数组定义了每一块大地图overmap tile的默认类型其中 14 格是backfloorchamber_north后室大厅其余为backroom_border边界墙。从源码结构可以推断这相当于把整个世界网格全部填成后室大厅这种 overmap terrain配合 7 格宽的backroom_border形成边界墙杜绝任何越界空地图。3. 地形/家具替换表把荒野变成地毯region_settings_terrain_furniture通过一组region_terrain_furniture条目把原版世界生成时会放置的野外地形全部替换为后室室内元素原版地形替换结果权重t_region_groundcovert_carpet_backrooms褪色地毯500同上t_carpet_backrooms_light带顶灯地毯1t_region_shrubt_backroom_wall/ 亮地毯1:1t_region_treet_wall_b1t_region_groundcover_barrent_carpet_red红地毯红房间用1f_region_flowerf_rack_coat/f_sign_warning/f_sign1:1:1甚至连森林区域都被替换成墙与地毯——forest_composition指向空的default_backroomsbiomes: []意味着原本的森林生物群系直接不存在。4. 室内化天气与禁令weather_generator以copy-from: default为基础做了室内化调整base_temperature6.5℃、base_humidity70%、base_wind3.4且base_wind_season_variation为 0无季节风变化并把early_portal_storm与portal_storm加入天气黑名单。最后通过feature_flag_settings的白名单BACKROOMS与whitelist: [ BACKROOMS ]配合确保只有带BACKROOMS标记的内容楼梯、地图额外事件等能在该区域生成。场景与出生点两种开局data/mods/Backrooms/scenarios.json 提供了两种开局Backroomsbackroom_dweller单人开局0 点数带LONE_START标记Backrooms (NPC EDITION)backroom_dweller_starternpc同样 0 点数但额外获得一名起始 NPC 同伴——README 未展开但场景描述暗示这位同伴既能成为互相扶持的伙伴也能在极端情况下成为备用口粮或帮你植入 CBM 义体的人选。两者都从sloc_backrooms出生起点地形为backfloorchamber。由于场景白名单的存在创建角色界面只会列出这两个选项。房间生成体系从地图块到嵌套房间大厅地图块的生成管线data/mods/Backrooms/overmap_terrain.json 定义了backfloorchamber的 mapgen 逻辑这是整个后室的地基{ type: mapgen, om_terrain: [ backfloorchamber ], object: { fill_ter: t_carpet_backrooms, place_nested: [ { chunks: [ [ mx_backrooms_whole, 100 ] ], x: 0, y: 0 }, { chunks: [ [ null, 250 ], [ mx_backroom_big_empty, 50 ], [ mx_backroom_big_generic, 50 ], [ mx_backroom_big_common, 100 ], [ mx_backroom_big_storage, 25 ], [ mx_backroom_big_breakroom, 25 ], [ mx_backroom_big_bathroom, 20 ] ], x: [ 0, 13 ], y: [ 0, 13 ], repeat: [ 0, 2 ] }, { chunks: [ [ null, 250 ], [ mx_backroom_small_empty, 50 ], [ mx_backroom_small_generic, 50 ], [ mx_backroom_small_common, 100 ], [ mx_backroom_small_storage, 25 ], [ mx_backroom_small_breakroom, 25 ], [ mx_backroom_small_bathroom, 20 ] ], x: [ 0, 18 ], y: [ 0, 18 ], repeat: [ 0, 3 ] } ] } }生成时先以t_carpet_backrooms填底然后必定嵌入一块 24×24 的整体房间mx_backrooms_whole再随机铺入若干大房间mx_backroom_big_*权重最高的是 common 100与小房间mx_backroom_small_*。null的高权重250意味着大量格子留空交由其他机制填充。backroom_border的 mapgen 则简单地把整个地图块填成t_backroom_wall_border。字符画式调色板data/mods/Backrooms/palettes.json 中的backrooms_palette是理解房间布局的核心——地图块用 ASCII 字符描述结构调色板把这些字符翻译成具体地形/家具/物品。几个关键映射 空格95% 概率为普通地毯t_carpet_backrooms5% 为带顶灯的亮地毯light_emitted: 120后室的灯由此而来-t_backroom_wall可砸穿的褪色墙灰色墙D75% 关着的门 / 25% 开着的门d、?在门与墙之间按概率摇摆Q/q墙与地毯的混合墙角/墙面残影家具符号a椅子、c/e桌子、f办公桌、t书架、m衣帽架、n垃圾桶、A纸板箱等/楼梯空格格子在物品表中以极低概率1/20000刷出后室神器backrooms_artifacts。此外data/mods/Backrooms/rooms/rooms_whole.json 提供了 6 套不同的 24×24 整体房间 ASCII 布局变体均带ERASE_ALL_BEFORE_PLACING_TERRAIN标记保证整块区域先被清空再绘制。房间类型与补给分布rooms/目录下按功能拆分出rooms_common.json、rooms_bathroom.json、rooms_breakroom.json、rooms_storage.json、rooms_special.json、rooms_empty.json、rooms_generic.json以及微缩版rooms_micro_*系列对应 README 中提到的供应室、卫生间、休息室柜台、板条箱等房间类别。补给的具体构成由 data/mods/Backrooms/itemgroups.json 控制。例如普通板条箱backrooms_crate以distribution分发mischw杂物概率 100、home_hw家用五金150、hardware_plumbing/mechanics/tools_home各 75、electronics25、weapons仅 10、robots10、ammo_parts10而稀有板条箱backrooms_crate_rare则大幅提高军事价值ammo_common_boxed300、mags_common130、vault/weapons各 50、cop_armory20、bionics_common25还包含grenades、mutagen_kits诱变剂套件与各种枪械组。物品分布差异正是 README 所说平衡性仍需大量试玩调整的对象。红房间与快速旅行waycircle / waystone 传送网README 明确指出后室里基本没有交通工具的用武之地红房间Red Rooms就是快速旅行系统。其实现横跨 data/mods/Backrooms/teleport.json、data/mods/Backrooms/rooms/rooms_teleporter.json 与 data/mods/Backrooms/map_extras.json。使用流程在红房间中央找到waycircle仪式传送环——furniture_terrain.json 中同名家具带TRANSLOCATOR与MOUNTABLE标记examine_action为translocator传送定位器检查examinewaycircle 并给它命名完成链接激活旁边的waystone传送石——README 特别强调不需要捡起来而且真的不应该捡即可传送到任何其他已激活的红房间。为什么不应该捡waystonewaystone 的物品定义解释了原因weight: 2000000 g、volume: 1000000 ml——重达 2 吨、体积 100 万毫升物理上就比看起来重得多且没有ALLOWS_REMOTE_USE之外的可携带支持根本无法装进任何容器或正常搬运。README 原文也戏谑地写道最好在打算放置它的地方制作它。它通过use_action施放prim_warp法术effect为translocate传送、base_casting_time9000约 9 秒施法、能量源为STAMINA体力、valid_targets覆盖自身/友军/敌人。红房间的地图生成mx_teleporter_node以update_mapgen形式在 data/mods/Backrooms/rooms/rooms_teleporter.json 中实现中心X处放置f_waycirclex处 100% 生成a_waystone物品组内含 waystone周围一圈t_carpet_red红地毯与t_wall_r墙体构成显眼的红色传送室。而backrooms地图额外事件集合中mx_teleporter_node权重高达 5000是所有地图额外事件里最容易出现的保证了后室中红房间的相对常见性。地图额外事件后室里的惊喜README 专门解释了一个反直觉的设计地图额外事件在后室中依然存在这是作者有意为之的多样性考量。你可能会遇到蜘蛛、黄蜂、狗、弹坑、传送门甚至坠毁的直升机与天坑湖泊。实现位于 data/mods/Backrooms/map_extras.json并与区域配置中的map_extra_collection联动。区域级集合backrooms的chance为 30即每块地图有 30% 概率触发一次额外事件事件权重如下事件权重说明mx_teleporter_node5000红房间mx_casings/mx_corpses2500弹壳 / 尸体mx_autodoc_room1250自动手术台房间mx_collegekids1250大学生尸体/痕迹mx_spider/mx_nest_dermatik_backrooms1000蜘蛛 / 虫巢mx_science1000实验室痕迹mx_crater/mx_nest_wasp_backrooms/mx_house_wasp/mx_pond/mx_military/mx_drugdeal/mx_supplydrop500弹坑 / 黄蜂巢 / 池塘 / 军事痕迹 / 毒品交易 / 空投mx_portal/mx_portal_in150传送门mx_helicopter50坠毁直升机mx_jabberwock1Jabberwock 怪极稀有多数事件通过copy-from复用原版事件并extend追加BACKROOMS标记、将min_max_zlevel限制在 [-3, 3]后室最深地下三层、最高地上三层确保这些事件只在本模组区域内生效。生存攻略从 README 到源码验证README 给出的前几分钟生存建议几乎都能在源码中找到对应依据利用拐角卡视野line of sightt_backroom_wall等墙体带NO_SCENT阻断气味与WALL标记且see_cost为full_high狭窄的室内走廊非常适合反复卡视野脱离战斗。找一间带门的房间喘息调色板中大量D/d门与高权重空房间null250保证了安全屋的存在。拆椅子做武器调色板把a/b映射为f_chair、f_camp_chair等可拆家具——拆解出木板plank既可当钝器也可在有刀具时削成 cudgel短棍是早期性价比最高的武器路线。砸墙抄近路后室墙壁就是薄石膏板data/mods/Backrooms/furniture_terrain.json 中t_backroom_wall与t_backroom_wall_gray的bash数据为str_min: 15, str_max: 45砸穿后变为t_carpet_backrooms。与常规混凝土墙通常需要 40 力量相比15~45 的力量需求意味着多数角色拿块木板或趁手钝器就能打通墙壁用于破入封闭房间、制造捷径或绝境逃生。注意t_backroom_wall_border边界墙没有bash字段从源码结构可以推断它是不可摧毁的——防止玩家从世界边界凿墙逃出后室。善用红房间传送网找到红房间后尽快命名 waycircle把已探索区域串成传送网络减少在迷宫中的长途跋涉。现状与定位可完整游玩的整活模组README 的 FAQ 坦诚地回答了模组的定位与状态功能状态作者自述应该是功能完整的形态——没有 bug、世界生成正常、大体按预期运作。真正需要继续打磨的是物品与房间生成的平衡供应室出现频率、卫生间是否过密、休息室柜台是否太慷慨、板条箱是否太抠门、枪支手雷是否过多、食物饮水是否不足——这些都需要大量试玩来校准。是否噱头模组作者直言是的绝对是。多数玩家可能很快就会腻——这与纯荒野生存挑战有相似的通病缺乏中后期成长线、缺少高难度地点、区域间差异小、兴趣点远少于标准游戏。但如果你吃这一套那就请尽情享受。创作动机作者只是被这个点子迷住了又看到没人做过这种地图/世界生成的完全转换于是动手实现。垂直探索方面data/mods/Backrooms/overmap_specials.json 定义了从 z-3 到 z3 六组楼梯特殊地点backroom_stairs_z*每组occurrences为 [15, 40] 且带BACKROOMS标记让后室有了向更深楼层更危险、更怪异探索的空间层次。结语一份可对照源码学习的最小总转换范本Backrooms 模组虽然定位为整活但它恰好是研究 CDDA 模组系统的最佳样本之一从EXTERNAL_OPTION切换默认区域、region_settings清空自然地貌、default_oter铺满室内地图块、region_terrain_furniture做地形替换、SCENARIO_BLACKLIST白名单锁死开局到嵌套 mapgen、字符调色板、地图额外事件权重表与传送法术联动——一条完整的总转换开发链路全部浓缩在这份模组里。对照 data/mods/Backrooms 目录下的 JSON 文件逐一阅读可以快速建立起CDDA 世界生成如何被模组重写的完整认知。【免费下载链接】Cataclysm-DDACataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考