独立开发一款类杀戮尖塔游戏,我是如何设计16个系统之间的耦合的
我独立开发了一款以中国校招为主题的 Roguelike 卡牌爬塔游戏。设计了90张卡牌,47枚遗物,17个敌人,4种职业,3章爬塔,一共做了16个子系统。
设计出16个系统不是重点。每个人都可以像搭积木一样不断叠加系统,真正定义一款游戏品质的,不是”有多少系统”,而是系统之间如何对话。
系统全景
16个系统分三层,通过统一消息机制通信,互不直接依赖:
元游戏 / 表现层(6个系统)
- 地图生成、存档、渐进难度、成就、音频、视觉反馈
经济 / 内容域(5个系统,5种资源)
- 卡组、遗物、资源职业、事件、商店
战斗域(5个系统)
- 战斗流程、卡牌效果、手牌管理、敌人行为、Boss行为
240个可能耦合对,实际建立41条,耦合密度17.1%。
举个例子就明白了:
商店 × 敌人行为: 商店不知道你下一场要不要打谁,敌人也不知道你买了什么。这个耦合,技术上很容易做,但这会让玩家产生”被针对”的体验,进一步削弱构筑的自由度。肉鸽的核心乐趣就是用自己选的牌面对未知局面,而不是跟一个可以读你购物车的 AI 打架。
案例一:手牌保留制——一条规则如何串起战斗、敌人、Boss三个系统
系统设计
杀戮尖塔每回合弃光手牌。我改成了回合结束手牌保留,第一回合抽5张,之后每回合补抽3张,上限10张。
手牌保留在游戏王中是常态,在肉鸽卡牌品类中罕见。补抽3张,第3回合手牌开始溢出,刚好和Boss节奏对上。
这条规则如何与其他系统耦合
手牌保留制本身只是战斗规则的改动。但它改变了”手牌空间”的稀缺性,这个变化向其他系统传导:
→ 与卡牌设计的耦合: “群发消息:伤害=手牌数×2”,在弃光制下是弱牌,而在保留制下后期能打18+。同一张卡的强弱,取决于它处在哪套战斗规则下。反过来,虚无卡(回合末自动消耗)从负面标签变成了空间管理工具。手牌保留制重新定义了整个卡牌池的评估体系。
→ 与敌人设计的耦合: 弃光制下封印一张牌只影响当回合,保留制下被封的牌一直占手牌空间,两回合不处理手牌就满了。封印从”减少一回合手牌”变成了”持续压缩手牌空间”。13种敌人行为中有6种因此改变了威胁等级。
→ 与Boss设计的耦合: Boss2是HR总监,核心机制是封印手牌+塞诅咒入牌库。这个信息从第一章第一次选牌就开始生效:你要不要拿这张高费combo卡?它单卡强度很高,但如果Boss2封住了你的combo起手件,整条链断掉,这张卡就是死牌占格子。
Boss2还没出现,但它对构筑的约束已经在运作了。
随机Boss制下,玩家的构筑逻辑是”拿当前最强的牌,打到Boss再看怎么应对”。
固定序列下,构筑逻辑变成”每张牌不只要现在能用,还要在三场Boss面前都不成为负担”。选牌从单点最优变成全局博弈。这条耦合不在战斗层,在经济层——Boss通过信息公开,直接介入了商店、事件、卡牌奖励的每一次选择。
这个Boss的威胁感不是来自它自己的数值设计,而是来自手牌保留制和封印机制的交叉——两个系统链在一起,产生了杀戮尖塔里不存在的”空间窒息感”。
这是一条精心设计的耦合链:战斗规则(保留制)→ 卡牌评估体系改变 → 敌人威胁类型改变 → Boss设计空间打开。改的是一条规则,影响的是三个系统。
涌现:耦合不全是好事
测试中出现了两个设计时没预见的策略:
大专玩家用自伤卡积累怒气,配合”越挫越勇”遗物的加成,一回合秒杀了Boss1。
链条是:自伤卡→遗物加怒气→怒气跨战斗保留→怒气转化伤害→Boss1的120HP不够扛。五个系统各自的数值都在合理范围内,但串联后突破了Boss的生存阈值。
类似的情况也出现在本科职业——手牌保留积累低费牌+连锁遗物+费用减免,绕过了我预设的核心卡触发路径。
事后我对四个职业做了极限输出估算,发现问题的根源是怒气可以无代价地跨战斗无限积累。解决思路不是砍怒气机制本身——那会破坏大专的核心体验——而是调高精英怪和基础怪物的血量上限,迫使大专玩家在精英关就必须释放怒气来生存,没法把所有怒气囤到Boss战一波带走。
但精英怪血量不是大专的私有参数,四个职业打的是同一批怪。调它,必须沿着每条职业的耦合链追踪连锁影响:
本科是引擎型,回合越多连锁转得越充分,精英战变长对它反而是利好——前提是战斗不拖到手牌空间溢出。保留制下上限10张,本科出牌速度快、抽牌多,大约第5回合开始面临手牌淤积。精英血量的安全区间是”本科引擎能在4-5回合内解决”。
双一流是续航流,造成伤害回血,打得越久回得越多。这条链受影响最小,甚至略微受益。
985是压力最大的一条。985靠高费卡集中爆发,6点精力上限意味着一轮完整输出最多打出两张3费核心卡。精英血量一旦超过985爆发的击杀线,它就必须撑过第二轮——但第二轮精力恢复后手里不一定有足够的高费牌跟上。985对精英血量的容忍上限最低。
最终的血量区间要同时满足两个约束:高到大专必须在精英关释放怒气,低到985不会在精英关系统性卡死。实际调整后这个窗口存在,但不宽裕——这本身就说明耦合链越多,可调参数的安全空间越窄。
调整后大专的”赌狗”体验没变,但决策点从”囤到最后一把梭哈”变成了”每场精英关都要判断这一波该释放多少、事后如何调整”。
案例二:初始遗物——触发条件画多大的圈
系统设计
| 职业 | 初始遗物 | 效果 | 卡牌池协同 |
|---|---|---|---|
| 本科·连锁 | 勤能补拙 | 出≥4张牌→抽1+1精力,可连锁 | 12张低费卡(6张0费),核心卡「超频运转」精力翻倍+每出1卡抽1 |
| 双一流·续航 | 生生不息 | 造成伤害→恢复20%信心 | 「绝地翻盘」伤害=已损信心,输出=回血 |
| 985·爆发 | 名校光环 | 每场+5印象,≥3费卡+3印象 | 14张高费卡,6精力上限,印象≥20/30触发额外奖励 |
| 大专·赌狗 | 越挫越勇 | 受伤→+50%怒气 | 「一战成名」消耗全部怒气×1.5伤害无视甲,受伤从代价变资源 |
初始遗物的设计核心不是”给什么效果”,而是触发条件画多大的圈、画在哪。圈的大小和位置,决定了这个遗物会和多少个系统产生耦合。
四个职业的初始遗物对应两种画圈策略:
宽条件:制造构筑张力
勤能补拙的触发条件是”出≥4张牌”,不是”出≥4张本科专属卡”。
这个区别直接决定了本科的构筑弹性。如果条件限定本科卡,选牌答案永远确定——本科卡无条件优先,构筑退化成线性堆叠,遗物只是一个自动生效的被动。
条件放宽到”任意牌”之后,通用低费卡也能触发,构筑空间打开了,但选择压力也来了:路上遇到一张强力3费通用卡,拿不拿?拿了单回合出牌量可能凑不到4张,遗物不触发;不拿,放弃了一张绝对强度高的牌。遗物不是自动运转的引擎,是每次选牌都要掂量的方向。
窄条件:翻转资源极性
大专的”越挫越勇”条件是”受到伤害”。这个条件很窄——只有一种行为能触发,但窄在一个反直觉的位置上:它把所有职业都想回避的事变成了大专独有的资源入口。
其他职业看到敌人攻击想的是”怎么挡”,大专想的是”这一下能吃多少怒气,够不够在最终BOSS战斗放”。
触发条件的窄本身不重要,窄在”全局负面行为”上才重要——它把受伤从代价翻转成投资,直接改写了这个职业面对同一个战斗局面时的整套决策逻辑。
但宽窄只是遗物设计的方法。真正体现横向耦合的,是一个遗物的触发条件同时改写了多少个系统的运行逻辑。拿越挫越勇展开:
→ 改写战斗系统的决策逻辑: 其他职业看到敌人蓄力攻击,第一反应是出防御牌挡住。大专看到同样的蓄力,算的是”这一下能吃多少怒气”。同一个敌人行为,在大专的视角下从”需要应对的威胁”变成了”需要计算收益的投资”。遗物没有改动敌人的任何数值,但改写了玩家面对敌人系统时的整套评估。
→ 改写经济层的选牌标准: 商店里出现一张自伤卡,对其他职业是垃圾,对大专是核心拼图。同一张卡在不同职业的经济决策中价值完全相反——这个差异不来自卡牌本身的数值,来自遗物的触发条件。遗物跨过了战斗层,直接介入了经济层的每一次选择。
→ 与手牌保留制交叉产生二阶效应: 案例一讲过手牌保留制让手牌空间变成稀缺资源。大专要囤怒气就要多吃伤害,多吃伤害意味着要留出手牌位给防御调整——但保留制下手牌空间有限。怒气积累和手牌空间管理互相挤压,这个张力不在越挫越勇的设计里,也不在手牌保留制的设计里,是两个系统碰在一起才产生的。
一个遗物,三条横向耦合链,分别改写了战斗决策、经济选择、和手牌空间管理。
它没有改动任何一张卡的数值,没有改动任何一个敌人的行为,但通过一个触发条件,同时重新定义了三个系统的运行方式——和案例一里手牌保留制做的事情一样,只是案例一是纵向传导,这里是横向辐射。
案例三:Boss克制矩阵——Boss设计如何与职业系统双向耦合
系统设计
| Boss | 核心威胁 | 克制 | 被克 |
|---|---|---|---|
| CEO · 5回合DDL爆40伤 | 时间压力+精力递减 | 续航流 | 引擎流/爆发流 |
| HR总监 · 封印+诅咒污染 | 手牌控制+卡池膨胀 | combo卡组 | 精简卡组 |
| 终面官 · 施压-施压-评估窗口 | 每3回合仅1回合可输出 | 匀速输出 | 爆发/怒气 |
杀戮尖塔每章Boss随机,玩家在构筑阶段无法针对特定Boss。
我做了相反的选择:Boss序列固定,且玩家提前知道。
固定序列把Boss从”终点检验”变成了”全程约束”:
玩家知道Boss2是HR总监,核心机制是封印手牌+塞诅咒入牌库。这个信息从第一章第一次选牌就开始生效:你要不要拿这张高费combo卡?它单卡强度很高,但如果Boss2封住了你的combo起手件,整条链断掉,这张卡就是死牌占格子。
Boss2还没出现,但它对构筑的约束已经在运作了。
随机Boss制下,玩家的构筑逻辑是”拿当前最强的牌,打到Boss再看怎么应对”。
固定序列下,构筑逻辑变成”每张牌不只要现在能用,还要在三场Boss面前都不成为负担”。选牌从单点最优变成全局博弈。这条耦合不在战斗层,在经济层——Boss通过信息公开,直接介入了商店、事件、卡牌奖励的每一次选择。
代价是什么?
固定序列的代价很明确——可解性变高,理论最优路径存在。我用职业遗物差异和地图/事件随机来对冲——四个职业面对同一个Boss序列的最优构筑方向完全不同,地图分支保证每局可选牌池不重复。
这是一个有意识的优先级判断:在当前4职业、3Boss的体量下,信息公开带来的全程构筑博弈,比Boss随机带来的重玩不确定性对核心体验的贡献更大。玩家在第一章就开始为第三章的Boss做准备——这条从经济层反向约束战斗层的耦合链,只有在信息公开的前提下才成立。
如果Boss池扩展到每章2-3个候选随机抽取,可以同时保留信息公开的构筑深度和随机性带来的重玩价值。这是内容量上去之后的自然迭代方向,不是当前设计的修补。
同时Boss2的实际难度是多个系统的函数——封印机制、手牌保留制、卡组构成共同决定(案例一已经展开过),单独调任何一个参数都可能连锁失衡。
这就是耦合的双刃剑。
结语
这个项目让我走完了系统设计的全链路——从初始规则到耦合链追踪到涌现后的跨职业调整。下一步的方向很具体:专注打磨一到两个核心系统,把同样的耦合追踪和跨系统调参能力用在更大规模的项目里。
你可能还想看