Design-如何开发一个Roguelike游戏

做 Roguelike,程序员出身的制作人最容易犯的错,是一头扎进程序生成和寻路算法的技术细节里,却忘了自己在做一个”产品”。技术是手段,产品是目的——这篇文章从制作人的视角出发,讲清楚做一款 Roguelike 要做的每一个决策、每一个坑、以及每一项技术到底该投入多少。

先给结论:Roguelike 开发成败的关键,九成不在技术,而在立项时的”范围控制”和”核心循环”是否清晰。技术上的程序生成、数值平衡都有成熟方案可抄;真正决定项目死活的,是你能不能一句话说清你的游戏是什么、并忍住不加功能的冲动。

1. 立项三问:先别急着开引擎

动工之前,三个问题必须能答上来,答不上来就别写一行代码:

  1. 给谁玩? 硬核 roguelike 玩家、休闲玩家、还是类幸存者的爽快受众?受众决定你后面所有取舍。
  2. 核心乐趣是什么? 一句话说清——是”每一局的 build 都不一样”(以撒),还是”在压力下做资源取舍”(FTL),还是”越死越强的成长快感”(哈迪斯)?
  3. 能做多大? 你是独立开发、两人小团队、还是有人力预算?范围必须匹配产能,否则项目必烂尾。

这三个答案是一切的锚。后面每一节,最终都回到这三个问题上。

2. 核心循环:先做一个”能玩的”,再谈”好玩的”

制作人最该盯的一件事,是核心循环(core loop)。Roguelike 的核心循环通常是:

1
探索 → 遭遇敌人/事件 → 战斗/决策 → 获得资源 → 成长/变强 → 挑战更强内容 → 死亡 → 重开(带着新认知或新解锁)

立项阶段的目标,是把这个循环做成一个最小可玩闭环(MVP):一张地图 + 移动 + 战斗 + 死亡重开。先验证”这个循环本身好不好玩”,再往上加程序生成、加 meta 进度、加道具系统。

判断标准:Elegant Game vs Patchwork Game。塞尔达、怪猎是 Elegant Game——一句话能说清核心,所有系统都围绕它转;而很多失败的 Roguelike 是 Patchwork Game——系统一堆,各玩各的,没有统一点。你的游戏必须能落到前一类,否则加再多内容都是散沙。

3. Roguelike 还是 Roguelite:这不是术语问题,是产品定位

“Roguelike 还是 Roguelite”看起来是名词之争,实际上是留存模型和成本模型的选择

分水岭只有一条:死亡之后能不能留下东西。

  • 传统 Roguelike(DCSS、NetHack):什么都不保留,靠”每一局全新的挑战”留人。优点是不用做局外系统,成本低;缺点是对新人极不友好,留存靠核心玩家。
  • Roguelite(《盗贼遗产》《哈迪斯》《以撒》):有 meta 进度——解锁角色、继承属性、图鉴收集。优点是死亡有补偿、留存更好、更易商业化;缺点是局外系统是额外的一大块工作量,还有数值爆炸的风险(第 8 节细讲)。

给制作人的建议:独立开发者、第一款作品,优先做传统 Roguelike 或轻 meta 的 Roguelite,不要一上来做哈迪斯那种重局外养成的体量。局外系统的内容量和工作量容易被严重低估。

4. 案例学习:成功游戏到底做对了什么

别急着原创,先把标杆拆一遍。这些是制作人该提炼的”可迁移的东西”,而不是抄玩法:

游戏 做对了什么 给你的启示
《Spelunky》 4×4 网格 16 房间 + 关键路径,用精确物理规则让主题和机制无缝拼接 规则涌现替代堆内容,规则越简单越能组合出复杂
《以撒》 道具按”获取途径”投放,build 组合产生质变 重玩性来自道具间的化学反应,不是道具数量
《Dead Cells》 手工模板 + 程序拼接,保留关卡设计品质 纯随机无法精准设计,纯手工成本太高,混合路线才是正解
《哈迪斯》 局外养成做”机制”而非”数值”,惩罚契约”热度”重玩 meta 进度要解锁新玩法,而不是单纯加数值
《FTL》 空格暂停,把考验从手速转成资源管理 找到你的”核心张力”,并让它成为所有系统的轴
《盗贼遗产》 死亡继承,定义了 Roguelite 这个品类 一个清晰的差异化机制,能撑起整个产品
《矮人要塞》 元规则涌现(定义”大鱼吃小生物”即自动吃矮人),影响了 Minecraft 系统之间能互相作用,比单个系统多强更重要

共同点:这些游戏都有”一句话核心”,且围绕它做取舍,而不是无限叠加。

5. 范围管理:制作人的第一能力是”砍”

Roguelike 是范围蔓延(scope creep)的重灾区——“再加一个职业””再加一种地形””再加一套装备词缀”,每一项听起来都不大,加起来就是烂尾。

火花工作室复盘《符石守护者》的三大弊病,几乎是所有 Roguelike 项目都会踩的坑:

  1. 过度复杂:不平衡会催生 dominant strategy(唯一最优解),玩家最后只用一个 build,你做的 90% 内容等于白做
  2. 分散设计:系统之间没有统一核心,各玩各的
  3. 乐趣性效率低下:随机性稀释了高光时刻——玩家体验了 10 分钟,真正”爽”的只有 30 秒

他们靠”剔除多余 + 重连系统关联 + 数值收敛”救回来,但装备系统脱节成了永久后遗症。教训:砍功能比加功能更需要勇气,而且要在立项阶段就砍,而不是做到一半再砍。

一个实用的范围控制方法:列一个”必须有的核心体验”清单,凡是不能直接服务于核心循环的东西,一律推迟到第二版。职业数量、地形类型、道具词缀,先减到能验证核心循环的最小值。

6. 技术选型:作为成本决策,而不是炫技

技术必须懂,但制作人的视角是”每一项技术 = 多少成本 + 什么风险 + 值不值得现在做”。下面按优先级排。

6.1 地图生成:选一种风格,别贪多

程序生成是 Roguelike 的招牌,但主流方案就那么几种,每种对应一种”关卡感觉”:

方案 给你的感觉 实现成本
回溯法迷宫 经典迷宫,快速原型
房间 + 迷宫法 标准地牢(房间+走廊)
细胞自动机 自然洞穴、不规则地形
TinyKeep 分离法 结构可控、保证连通
手工模板 + 拼接(Dead Cells) 商业品质、精准设计
环状地牢(Unexplored) 强探索感、天然有环

制作人决策:第一款作品,从”房间 + 迷宫法”或”回溯法”起步,够用就行。手工模板 + 拼接是品质天花板,但需要大量预制模块,是内容密集型的活,等核心循环验证了再投入。核心要求只有一条:地图必须连通、有环(别全是死路)、入口出口各一

6.2 网格系统:一开始就要定死

方格还是六角?这是改起来代价极高的基础决策,因为它决定了寻路、视野、移动范围的实现方式。

  • 方格:简单、贴屏幕、适合动态改地形
  • 六角:六个方向等距、无移动偏差、适合策略/战棋

大多数 Roguelike 用方格,足够。选型标准是”你的核心玩法需不需要六向公平移动”,需要就六角,不需要就别给自己找麻烦。

6.3 寻路、视野:交给程序员,你只需知道”有成熟方案”

这些是纯技术实现,制作人不需要抠细节,但要知道”都能做、不贵、别让它拖进度”:

  • 寻路:BFS 做视野/范围/可达性,A* 做主寻路,都是现成算法
  • 视野(FOV):tile 地图用 shadowcasting(阴影投射),这是”探索感”的来源——看不到墙后才有紧张感,属于必须做,但实现成熟

6.4 引擎选择:跟着团队走,别为了 Roguelike 选冷门引擎

Unity、Godot 都有大量 Roguelike 教程和现成方案。选你或团队最熟的引擎,而不是”哪个最适合 Roguelike”——独立开发最大的风险是技术栈不熟导致进度失控。

7. 系统优先级:开发顺序决定成败

制作人要对”先做什么后做什么”有清醒判断。推荐顺序:

  1. 核心循环 MVP:一张图 + 移动 + 战斗 + 死亡重开(第 2 节)
  2. 地图生成:从手动摆一张图,换成程序生成(第 6.1 节)
  3. 战斗与数值手感:调伤害、攻击节奏,让”打”这件事爽(第 8 节)
  4. 视野与探索感:加上 FOV,让地图有”未知”(第 6.3 节)
  5. 道具 / Build:加第一批道具,验证组合多样性(第 9 节)
  6. meta 进度(如果是 Roguelite):最后加,因为它依赖前面所有系统

原则:每一个阶段都要产出”能玩”的东西,而不是”能看”的东西。 别让地图生成调了一个月还没进战斗。

8. 数值与难度:这是”手感”和”留存”,不是数学游戏

数值设计的本质不是”这个数字合不合适”,而是调出你要的手感。制作人关心的是两件事:战斗爽不爽(即时反馈)和难度曲线合不合理(留存)。

几个必须盯住的点:

  • 敌人强度曲线要定死(如 EnemyHP(t) = BaseHP × k^(t/T)),玩家成长就是”追这条曲线”。曲线和玩家成长曲线交叉、敌人反超的点,就是玩家卡关的点。
  • 用模拟器验证,别靠试玩手感。写个纯数学模拟器跑”玩家强度 vs 敌人强度”,能精确定位哪个参数出问题,比一遍遍试玩快得多也准得多。
  • 局外成长(Roguelite)的数值陷阱:线性叠加会数值爆炸(100 个 +5% 词条 = +500%,碾压敌人曲线)。用软上限 有效倍率 = 1 + log(1 + 原始加成总和),或者让局外加成只影响起始数值。

关键认知:数值是”为手感服务”的,不是”数学上漂亮”的。Desktop Dungeons 被业内公认数值近乎完美,恰恰是因为它把数值调到了”玩家觉得对”而不是”公式对”。

9. 内容产出:道具和 Build 的工作量估算

这是最容易被低估成本的一块。Build 多样性是 Roguelike 重玩性的核心,但**”多样性”不等于”道具多”**——是道具之间能否组合出质变。

以撒的投放套路值得学,本质是按”获取途径”分类,而不是按”品质”评级

  • 保底道具(每层固定宝箱、杀 BOSS 必掉)+ 隐藏道具(隐藏房、黑市)并存
  • 每条途径配独立道具库,玩家”想要什么去对应途径刷”
  • 套装部件多途径产出,平庸/特殊道具单一产出压掉率

给制作人的提醒:道具系统的成本不在于做 50 个道具,而在于平衡 50×50 种组合。所以先做 10 个能互相作用的道具验证化学反应,比一次做 50 个各玩各的道具更明智。

10. 风险清单与应对

把最可能杀死项目的风险列出来,提前应对:

风险 征兆 应对
范围蔓延 功能清单越加越长 立项时锁死 MVP,砍到最小闭环
核心不清晰 一句话说不清你的游戏 回到第 2 节,重写核心循环
dominant strategy 玩家只用一个 build 数值收敛、删多余词缀、重连系统
地图生成过度投入 一个月还没进战斗 先用最简单算法,验证后再升级
局外系统拖垮进度 Roguelite 内容做不完 砍成轻 meta,或退回传统 Roguelike

11. 总结

  • 先定位再动工:立项三问(给谁玩、核心乐趣、能做多大)是后面所有决策的锚。
  • 核心循环先行:先做最小可玩闭环(图 + 移动 + 战斗 + 死亡重开),验证”好玩”再谈”丰富”;目标是 Elegant Game 而不是 Patchwork Game。
  • Roguelike vs Roguelite 是产品定位:死亡后能否留下东西,决定了留存模型和局外系统的工作量。
  • 技术是手段,选型是成本决策:地图生成选一种风格、网格一开始定死、寻路视野有成熟方案、引擎跟着团队走。
  • 范围管理是制作人第一能力:过度复杂和分散设计是 Roguelike 两大死因,砍功能比加功能更需要勇气。
  • 数值为手感服务:敌人曲线定死、模拟器验证、局外成长套软上限;道具靠”组合化学反应”而非数量。
  • 开发顺序比什么都重要:每个阶段都要产出”能玩的”,而不是”能看的”。

参考链接