程序化世界生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/procedural-gen-sh-u2lq35。
技能介绍
要解决的问题
程序化生成经常卡在“随机不可复现”:地图、掉落和地形看起来能跑,但 bug 无法稳定复现,玩家不能分享世界,参数调优还会受调用顺序影响。它适合不想逐张手写地图的场景,尤其是需要用 seed 驱动结果、便于调试、每日挑战或世界分享的关卡、地牢、高度图和掉落表。
技能如何工作
核心思路是确定性:先生成纯数据结构,再交给渲染或游戏逻辑消费。技能覆盖 seeded RNG、fBm noise、dungeon layout 和 weighted tables 四类基础能力。关键步骤包括:
- 创建一个带种子的随机源,并显式传入生成函数,避免依赖全局
random。 - 按内容选择技术:连续高度图用噪声,离散房间或通道用空间切分、雕刻,稀有度掉落用权重表。
- 先把结果写入
int[][]、字典或图结构,与绘制解耦。 - 交付前校验连通性、出生点安全性和出口可达性,失败时拒绝或修复布局。
- 固定
seed调参,再扫描多个种子检查分布,而不是只看一张幸运地图。
适用边界
这个技能不负责把生成结果画进引擎 tilemap,也不负责在生成图上做寻路或手工关卡节奏。需要绘制、AI 寻路或手调节奏时,应组合 godot-tilemap、unity-tilemap-2d、game-ai 或 level-design 使用。常见陷阱包括:噪声字段共用种子导致 biome 条带状相关、octave 未归一化、放置循环无上限,以及时间、物理或哈希随机化等非确定输入混入生成流程。
使用场景
- 调试 roguelike 地牢时,用同一 seed 重新生成房间、通道和可达性,定位卡死出口。
- 做生存类高度图时,用 fBm 噪声和不同种子生成 elevation/moisture,再检查 biome 分布。
- 设计掉落系统时,用权重表按稀有度抽取装备,并用 pity 机制避免连续未命中。
- 发布每日挑战前,固定 seed 调参并扫描多个种子,确认房间连通和出生点安全。
适合人员
- 做 roguelike 的独立游戏程序员,希望同一 seed 能复现房间、通道和掉落。
- 做生存建造地形的客户端工程师,需要调试高度图、biome 相关性和岛屿边界。
- 做掉落与稀有度的玩法策划,希望权重表可复现且能控制连续未命中。
- 做关卡工具链的技术负责人,需要把程序化生成与手调关卡边界分开。