返回
玩法拆解 · 代码 · Demo
Roguelike战斗关卡生成数值

Roguelike 关卡:随机池设计与 Build 强度控制

从房间池/权重/约束出发,做出“可无限扩展但不崩坏”的关卡生成。

0
Roguelike 关卡:随机池设计与 Build 强度控制

玩法拆解

随机池怎么搭
  • 把关卡拆成“房间模板池”:普通/精英/商店/事件/补给等
  • 每个模板带标签与约束:biome、难度档、前置/互斥、冷却(避免连出)
  • 用“预算”而不是纯权重:每层/每段给定事件与战斗的配比目标
Build 强度怎么控
  • 定义目标强度曲线:每层期望 DPS/生存/机动的增长幅度
  • 奖励投放表驱动:升级/稀有度/资源三者的比例随层数变化
  • 做“软纠偏”:落后给补偿,领先提高风险而不是直接削弱
避免“看似随机”
  • 避免连出同类房间:最近 N 次的类别进入冷却
  • 关键节点保证出现:例如每 3 层至少 1 次商店/补给
  • 把随机结果可解释化:用 UI 告诉玩家“本层偏战斗/偏资源”

关键代码

带冷却与硬约束的加权抽取(简化)
ts· 38

Demo

建议 Demo:同一套房间池,分别开启/关闭冷却与保底,观察“连坏房间”概率与通关率。

文章

文章以 Markdown/MDX 文本子集渲染(不支持自定义组件)。

Roguelike 关卡:随机池设计与 Build 强度控制

流量原因:内容可无限扩展(“每次都不一样”),天然适配短视频/直播反复刷。

1) 随机池不是“随机”,而是“可控的组合生成”

把关卡拆成多个 可组合的池,而不是一个大杂烩:

  • 房间池:普通战斗 / 精英 / 商店 / 事件 / 补给
  • 奖励池:金币 / 升级 / 遗物 / 临时 Buff
  • 敌人池:按 biome、层数、单位体型与技能标签分组

关键:每个条目都要有 标签与约束,否则你只能靠“权重玄学”救火。

常用的约束字段(表驱动):

  • minFloor/maxFloor:出现区间
  • exclusiveTags:互斥(同一层只出一次)
  • cooldown:最近 N 次不出现(防止连出商店/连出事件)
  • ensureEvery:每 X 层至少一次(避免“缺商店导致后期没法成型”)

2) Build 强度控制:不要直接“削弱玩家”,要“改风险与节奏”

玩家 Build 崩坏通常不是“数值太大”,而是 增长曲线失控

  • 稀有升级太密 → 叠乘过快
  • 防御成长滞后 → 被一波秒
  • 关键功能(位移/穿透/吸血)出现过晚 → 手感差、退游

做法:先定义一个 目标强度曲线(每层的期望):

  • 输出:期望 DPS 增长 10~15%/层
  • 生存:有效血量或减伤增长 8~12%/层
  • 控场:关键功能在第 2~3 层必须能拿到“入门版本”

当玩家领先时,不要“砍属性”,更好的手段是:

  • 提高风险:更强敌人组合、更少补给、更高精英密度
  • 改变收益结构:领先时给“选择空间”,落后时给“直接力量”
  • 控制叠乘:把同类加成改为加法(同组加法、跨组乘法)

3) 一个很好用的生成策略:预算 + 软纠偏

每层设定预算(示例):

  • 战斗房间占比 60%
  • 事件房间占比 25%
  • 商店/补给占比 15%

然后再根据玩家状态做软纠偏:

  • 玩家落后:提高补给/直接数值奖励的权重
  • 玩家领先:提高“高风险高回报”的权重(例如精英/诅咒奖励)

一句话总结:池负责“多样性”,预算负责“稳定性”,纠偏负责“公平感”。

你可能也喜欢