合成系统要服务玩法目标
个人游戏加入合成系统很容易:收集木头、矿石、碎片,然后做武器、药水或工具。但如果配方只是把材料变成另一个图标,玩家很快会觉得这是填充。合成系统应该服务明确目标:让探索有回报,让经济有消耗,让玩家按自己的路线构建角色,或让任务道具有制作过程。
在 Steam Demo 中,合成系统尤其要克制。玩家需要快速理解材料来源、配方用途和结果价值。如果前 20 分钟就出现几十个材料和配方,学习负担会很高。
配方表设计
配方应数据化:
| 字段 | 示例 | 说明 |
|---|---|---|
recipe_id | craft_healing_potion | 稳定 ID |
output_item | item_healing_potion | 产物 |
output_count | 2 | 产物数量 |
materials | herb:3, bottle:1 | 材料 |
station | alchemy_table | 所需工作台 |
unlock | quest_intro_done | 解锁条件 |
craft_time | 0 | 是否需要时间 |
配方 ID 要稳定,因为存档可能记录已解锁配方。显示名称和描述走本地化,不要直接写在逻辑里。
材料扣除要原子化
合成操作涉及扣材料、加产物、触发任务、播放动画和保存。如果中途失败,不能出现材料扣了但物品没给。合成应通过一个事务式流程:
- 检查配方是否解锁。
- 检查工作台是否正确。
- 检查材料是否足够。
- 检查背包是否能放产物。
- 扣除材料。
- 添加产物。
- 写日志和保存。
如果第 4 步背包满,就不应扣材料。玩家对材料损失非常敏感。
UI 预览
合成 UI 要让玩家在点击前知道结果:
| 信息 | 说明 |
|---|---|
| 产物图标和数量 | 做出来是什么 |
| 材料需求 | 已有/需要 |
| 缺失来源 | 可选,提示哪里获得 |
| 属性变化 | 装备或消耗品效果 |
| 是否已拥有 | 避免重复制作 |
| 工作台限制 | 为什么现在不能做 |
按钮不可用时要说明原因。不要只把按钮置灰,玩家不知道缺材料、未解锁还是背包满。
配方解锁
配方可以通过任务、探索、等级、NPC、商店、蓝图解锁。解锁方式要和游戏节奏匹配。前期给少量关键配方,后期逐步增加。一次解锁十几个配方会让玩家无从选择。
解锁后给清楚提示:新配方名称、在哪里制作、需要什么工作台。提示也要进入本地化。
材料来源
每种材料都要有来源。材料太多而来源不清,会让玩家变成查表。材料表可以记录:
| 材料 | 来源 | 用途 |
|---|---|---|
| 草药 | 野外采集、商店 | 药水 |
| 铁矿 | 矿洞、敌人掉落 | 武器 |
| 旧齿轮 | 工厂敌人 | 机关工具 |
| 星尘 | Boss 或隐藏房 | 稀有升级 |
材料用途要有重叠但不能过度混乱。某材料如果只用于一个低价值配方,玩家会觉得占背包。
经济和平衡
合成会影响经济。玩家能低价买材料合成高价卖出,就可能刷钱;材料掉落太少,合成变成摆设;材料太多,商店购买失去意义。
检查:
- 产物售价是否低于材料总成本或有合理限制。
- 稀有材料是否有明确用途。
- 消耗品制作是否影响难度。
- 合成是否绕过了关键任务进度。
- Demo 中是否能体验一次有意义合成。
合成系统要和商店、掉落、任务奖励一起调。
随机词条和失败率
如果合成有随机词条或失败率,要谨慎。随机结果会增加重复制作,失败率会增加挫败。个人项目如果没有足够内容支撑,建议先做确定性配方。随机可以用于后期强化或可选系统。
如果必须有失败率,要告诉玩家概率、保护机制和失败后返还。不要让玩家投入稀有材料后毫无解释地失败。
存档和补丁
存档要记录已解锁配方、制作中队列、工作台状态和相关任务标记。配方表补丁变化时要考虑旧存档:
| 变化 | 处理 |
|---|---|
| 配方成本降低 | 直接使用新成本 |
| 配方删除 | 隐藏但保留兼容 |
| 产物改 ID | 做迁移 |
| 材料删除 | 替换或补偿 |
| 工作台规则改变 | 旧制作队列迁移 |
不要让旧存档里正在制作的物品因为补丁消失。
QA 清单
| 测试 | 检查 |
|---|---|
| 材料不足 | 按钮提示原因 |
| 背包满 | 不扣材料 |
| 成功合成 | 材料和产物正确 |
| 解锁配方 | UI 和提示刷新 |
| 读档 | 已解锁和制作队列恢复 |
| 商店套利 | 不能明显刷钱 |
| 旧存档 | 配方变化后可加载 |
最终检查清单
- 配方数据化,ID 稳定。
- 合成流程先检查再扣材料。
- UI 显示产物、材料、原因和效果。
- 配方解锁节奏可控。
- 每种材料有来源和用途。
- 合成经济和商店掉落一起平衡。
- 随机失败有说明和保护。
- 补丁改配方时测试旧存档。
合成系统能增加目标感,但也会增加大量边界。个人 Steam 游戏先把少量核心配方做清楚,比堆几十个用途不明的材料更能让玩家理解价值。
配方分组和玩家理解
配方多了以后,要按用途分组:恢复、武器、工具、任务、装饰。玩家打开合成界面时,不应该在几十个配方里找一个药水。分组可以跟工作台绑定,也可以在同一 UI 中使用标签页。无论哪种,都要保持稳定顺序。
配方说明要讲结果,不只讲材料。比如“制作一个能打开工厂电闸的绝缘手套”比“消耗橡胶和齿轮”更能让玩家理解为什么要做。任务配方尤其要写清用途,避免玩家把它当成普通道具。
合成队列和时间
如果合成需要时间,队列状态要进入存档。玩家退出再回来,制作是否继续?时间按真实时间走,还是游戏时间走?工作台能否同时做多个?这些都要提前定义。个人项目如果不需要等待玩法,建议先做即时合成,减少边界。
需要时间的合成还要有取消规则。取消是否返还材料,返还多少,已完成但未领取的物品是否占背包。规则不清会引发玩家争议。
配方发现的反馈
玩家获得新配方时,要有明确提示,并能在配方界面找到。提示可以显示配方名、产物图标和所需工作台。如果只是默默加入列表,玩家可能根本不知道已经解锁。
配方来源也可以写进图鉴:来自任务、商人、探索、Boss。这样玩家缺某个配方时知道去哪里找线索。
合成系统的补丁复盘
发售后如果某材料大量堆积,说明消耗不足;如果玩家普遍不做某配方,可能是成本高、效果弱或 UI 不清。补丁时不要只改材料数量,也要检查产物价值和获取路径。合成系统是经济、探索和战斗的交叉点,调一个配方可能影响很多循环。
配方和任务的边界
任务配方要和普通配方区分。普通配方可以自由制作、出售、重复;任务配方通常只需要一次,可能不应该出现在普通商店或随机掉落中。若任务配方材料可以提前收集,任务接取时要检测玩家已有材料,避免让玩家重复跑图。
任务配方完成后,是否保留在列表也要决定。保留能让玩家回看,隐藏能减少噪音。无论哪种,都要避免任务物品被玩家误卖或误分解。
批量制作和数量选择
材料充足时,玩家可能想一次制作多个药水。批量制作要先计算总材料、背包空间和产物堆叠。不要循环执行单次制作直到中途失败,那样容易出现扣了一部分材料但产物不完整。
数量选择 UI 要显示“最多可制作”,并在玩家调整数量时实时更新材料需求。手柄操作下,增加、减少、最大值、确认都要清楚。
制作失败的日志
合成失败也要写日志:配方未解锁、材料不足、背包满、工作台不对、产物无效。玩家反馈“按钮不能点”时,日志能快速判断原因。发行版不需要记录每次普通失败,但详细日志模式下应可用。
配方测试存档
发布前准备一个包含各种材料的测试存档,用于快速检查配方 UI、材料扣除和产物。另准备一个空背包存档和一个满背包存档。三类存档能覆盖大部分边界。
工作台和场景限制
如果合成依赖工作台,工作台本身也要进入 QA。玩家在正确工作台旁边能否打开对应配方,离开后是否关闭,读档后工作台状态是否恢复,手柄是否能选中工作台。不要让玩家在背包里随时制作任务关键道具,除非你的设计就是便携合成。
工作台还可以承担节奏控制。前期只开放基础工作台,后期通过修复工坊、找到蓝图或完成 NPC 任务解锁高级配方。这样配方增长更自然。
合成结果的即时反馈
制作成功后要有明确反馈:产物图标、数量、音效、背包新增位置。如果产物自动装备或进入快捷栏,也要提示。玩家最怕点了按钮后不知道东西去了哪里。
合成失败时也要同样清楚。缺材料、缺工作台、背包满、配方未解锁,提示文案应不同。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。