☰
修仙世界模拟器地图系统完全解析:Region区域、灵气分布与荒野地形是如何生成的?
2026/10/8 13:32:01 网站建设 项目流程

修仙世界模拟器地图系统完全解析:Region区域、灵气分布与荒野地形是如何生成的?

【免费下载链接】cultivation-world-simulator基于 AI Agent 工作流的修仙世界模拟器,旨在还原智能、开放的仙侠世界。| An open-source Cultivation World Simulator using Agentic Workflow to create a dynamic, emerging Xianxia world.项目地址: https://gitcode.com/gh_mirrors/cu/cultivation-world-simulator

修仙世界模拟器(cultivation-world-simulator)是一款基于 AI Agent 工作流的开源修仙世界模拟器,其中地图系统以Region 区域为核心:三张官方地图预设、map.json区域矩阵、灵气分布配置与荒野(Wilderness)推导规则共同决定了一个仙侠世界的空间结构。本文带你完整看懂它是怎么生成的。

一、官方地图预设 + 地图快照:不靠随机生成

修仙世界模拟器的地图不做动态随机生成,而是采用「官方地图预设 + 地图快照」的设计(见 docs/map-design-notes.md):

  1. 官方提供少数几张质量可控的地图;
  2. 玩家开局选择一张地图(map_id);
  3. 存档时写入完整的地图快照(map_snapshot);
  4. 读档时优先恢复快照,而不是重新读官方地图。

这样即使官方地图日后更新,旧存档也能保持当时的世界原貌。当前共提供三张预设:

地图 ID名称风格荒野地形
classic九州中土均衡大陆,适合新手开局plain(平原)
island_seas沧海诸洲海域辽阔、诸洲分隔sea(大海)
mountain_frontier万山边境山岭密布、洞府更险峻plain(平原)

二、map.json:一张地图只有一个「真源」

每张地图的完整数据都在 static/game_configs/maps/ 下的一个 JSON 文件里,例如 maps/classic/map.json。它只保存一张区域矩阵region_rows——每个格子只存一个 Region ID:

{ "schema_version": 2, "id": "island_seas", "width": 84, "height": 60, "wilderness_tile": "sea", "region_rows": [[-1, -1, 102], [-1, 102, 102]], "landmarks": { "305": { "x": 50, "y": 18, "asset": "city_305" } } }

几个关键设计(详见 docs/specs/region-first-map-system.md):

  • -1就是荒野:不归属任何 Region,使用地图自己的wilderness_tile。沧海诸洲把大面积海域设为-1海面,成为不可点击的无区域水域;
  • tile 图像不手工指定:由 src/run/map_source.py 中的derive_tile_rows_from_region_rows()从区域绑定自动推导,避免「区域矩阵」和「地形矩阵」两套数据互相打架;
  • landmark 控制大视觉标记:城市、宗门、洞府的大图放在landmarks坐标上,未配置时回退到区域中心;
  • region_overrides局部改名:同一个 Region 在不同地图可以有不同名字,比如大陆地图上的「揽月城」在海岛地图里覆盖为「揽月港」,文本更贴合海岛语境。

三、Region ID 编号规则:一位数字看懂区域类型

所有区域元数据都放在 static/game_configs/ 的 CSV 中,ID 段即类型(规则实现见 src/run/map_source.py):

  • 1xx普通区域(normal_region.csv):平原地带、西域流沙、青峰山脉、炎狱火山、蓬莱遗岛……共 18 种地貌,各自绑定动物、植物、矿脉;
  • 2xx修炼秘境(cultivate_region.csv):太白金府、玄水秘境、古越遗迹等,是灵气浓度最高的地方;
  • 3xx城市(city_region.csv):青云城、沙州城、翠林城、沧澜城、揽月城,带初始人口与人口容量;
  • 4xx宗门驻地:绑定具体宗门对象。

区域到地形图的绑定统一维护在 region_tile.csv,例如102,desert,(西域流沙→沙漠贴图)、201,mountain,cave(太白金府→山地+洞府大图)。一个区域只允许一种地形贴图,更自然的边界靠不同区域犬牙交错实现。

四、灵气分布:五行浓度藏在配置表里

每个区域的灵气(Essence)分金木水火土五种,浓度 0~10,定义见 src/classes/essence.py。灵气的「分布」并非程序随机生成,而是由两张表共同决定:

  • 普通区域在normal_region.csv的描述中体现灵气氛围,比如「紫竹幽境——灵气清冽」;
  • 修炼秘境在 cultivate_region.csv 中直接声明主修灵根与浓度:201,太白金府,cave,GOLD,10表示金灵根浓度满值 10,是金系修士的顶级圣地。

加载时由 src/run/load_map.py 把root_type/root_density读入区域对象,再实例化为Essence对象——也就是说,你在哪片山脉打坐,吸收的灵气属性是由地图配置直接决定的。

五、生成与校验流程:改地图要跑哪些工具?

地图是视觉资产,官方维护流程是「改文件 → 校验 → 看图修正」:

  1. 编辑static/game_configs/maps/<id>/map.json(可用可视化编辑器 tools/map_creator/main.py,直接绘制区域归属);
  2. 运行 tools/map_presets/validate_presets.py:检查 ID 一致性、区域连续性、landmark 越界、贴图合法性等 17 类规则;
  3. 运行 tools/map_presets/render_preview.py 生成预览图,用肉眼审图修正空间结构;
  4. 运行 tools/map_presets/quality_audit.py 查看水系连续性、碎片区域、长直边等软提示。

六、总结

修仙世界模拟器的地图生成逻辑可以浓缩为一句话:region_rows是唯一语义矩阵,地形贴图由区域绑定推导,灵气浓度来自配置表,荒野是-1的留白。它用「预设 + 快照」替代了随机生成,在可控性和叙事一致性之间取得了很好的平衡。如果你想深入了解更多细节,可以阅读 docs/specs/region-first-map-system.md 和 docs/map-design-notes.md。

📌 小贴士:开局时选对地图很重要——想打基础选「九州中土」,想体验海战分散感选「沧海诸洲」,喜欢险峻秘境就选「万山边境」!

【免费下载链接】cultivation-world-simulator基于 AI Agent 工作流的修仙世界模拟器,旨在还原智能、开放的仙侠世界。| An open-source Cultivation World Simulator using Agentic Workflow to create a dynamic, emerging Xianxia world.项目地址: https://gitcode.com/gh_mirrors/cu/cultivation-world-simulator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询