库存管理型 Roguelike 游戏将背包变成了构建的一部分。空间限制了玩家能保留哪些奖励,而放置方式可以改变物品之间的协同效果。从一个小型网格、一条相邻规则和一场遭遇战开始;在添加数十种物品之前,先测试打包决策。
本指南描述了一个虚构的原型和一项 AI 辅助构建请求。生命值和伤害值是示例规则,并非来自已完成游戏的观察。目标是为您提供一个小型系统,其结果您可以计算和验证。

将打包好的背包与运行连接起来
使用一个三列两行的背包。一把剑占据两个水平单元格;一个护符占据一个。玩家在战斗前将它们排列好。如果护符与任何剑单元格共享一条边,它将为每次剑攻击增加一点伤害。遭遇战后,提供一个必须放入空闲单元格或留下的药水。
| 时刻 | 玩家决策 | 后续重要的状态 |
|---|---|---|
| 打包 | 放置剑和护符,不重叠 | 已占用单元格和相邻关系 |
| 战斗 | 攻击一个固定的守卫 | 剩余生命值和守卫状态 |
| 获取奖励 | 放入药水或丢弃它 | 背包内容和可用治疗 |
| 结束 | 活着到达第二房间的出口 | 运行结果和重置 |
在第一个版本中,在战斗期间保持背包固定。这能让玩家理解事先选择的排列效果,并减少需要调试的状态转换数量。

定义已占用单元格和相邻关系
将背包的列编号从 1 到 3,行编号从 1 到 2。坐标写作列,然后行。将水平剑放置在 (1,1) 和 (2,1),护符放置在 (3,1)。护符与剑的第二个单元格共享一条边,因此加成生效。对角角落不算作共享边。
赋予剑基础攻击力 2。相邻的护符增加 1,使每次攻击造成 3 伤害。即使护符接触同一把剑的多个单元格,也只计算一次护符的加成。拒绝重叠或超出边界的放置,在此初始构建中不要旋转物品。
| 排列 | 每次攻击伤害 | 原因 |
|---|---|---|
| 护符与剑共享一条边 | 3 | 基础 2 加一个相邻加成 |
| 护符不共享一条边 | 2 | 仅应用基础伤害 |
显示已占用单元格并突出显示活动连接。玩家应该在进入战斗前就能看到伤害变化的原因,而不是在战斗后发现隐藏规则。

经历第一次遭遇战
玩家以 5 生命值开始,守卫以 5 生命值开始。每次玩家攻击造成当前剑伤害。如果守卫在一次打击后存活,它会回应 1 伤害。如果一次打击将守卫生命值降至零或以下,战斗立即结束,它不再回应。
当护符相邻时,两次 3 伤害的攻击将守卫从 5 降至 2,然后降至零以下。守卫回应一次,玩家剩余 4 生命值。没有加成时,需要三次 2 伤害的攻击:守卫在前两次后回应,玩家以 3 生命值结束。此比较遵循示例规则;它不是平衡测试。
胜利后,提供一个占据单个单元格的药水。玩家可以将其放入空闲背包单元格或丢弃它。在进入第二房间之前,使用药水最多恢复 2 生命值,不超过最大值 5,并消耗它。第二房间有一个出口,在此第一个设计中没有额外的战斗。
在 AI 构建请求中描述系统
向助手提供网格、形状、放置条件和事件顺序。SEELE 的能力目录描述了从想法创建游戏,包括 RPG 和 Roguelike 类别,以及一个 2D 资产工作坊。这些广泛类别并不能证明下面特定的库存、战斗或放置系统已被生成和测试。
创建一个原创的小型库存管理型 Roguelike 游戏原型。
使用一个 3 列乘 2 行的背包网格。一把水平剑占据两个单元格
且基础攻击力为 2;一个护符占据一个单元格,如果它与任何剑单元格
共享一条边,则增加 1 攻击力。加成只计算一次,而不是按共享边计算。
拒绝重叠和超出边界的放置。暂时不要旋转物品。
从剑在 (1,1) 和 (2,1),护符在 (3,1),玩家生命值 5 开始。
允许在战斗前重新排列,但在战斗期间锁定背包编辑。
守卫以 5 生命值开始。每次玩家攻击造成当前剑伤害。
在非致命打击后,守卫造成 1 伤害;在致命打击后则不造成。
如果玩家生命值降至零或以下,立即以失败结束运行。
胜利后,提供一个单格药水:将其放入空闲单元格或丢弃它。
在进入下一个房间之前,使用它最多治疗 2,上限为 5,并消耗它。
第二房间有一个出口;活着到达它即获胜。显示生命值、已占用
单元格、活动相邻关系以及被阻止放置的清晰反馈。
重启恢复原始背包、玩家、守卫、药水状态和房间。
使用原创插图物品和角色,不使用现有游戏资产。
首先构建网格和有效放置。然后从已占用单元格计算相邻关系,添加战斗,最后添加奖励和出口。保留一个通过每个步骤的版本。如果护符在对角线方向激活,请在更正请求中提供两个物品坐标和预期结果。
分别检查放置和战斗
- 占用:尝试将护符放置在剑单元格上或背包外。两次尝试都应失败,并保持之前的布局不变。
- 相邻关系:当剑单元格为 (1,1) 和 (2,1) 时,将护符放置在 (3,1) 并预期 3 伤害。测试一个非相邻位置并预期 2;仅对角角落不得授予加成。
- 战斗:在有加成的情况下,对 5 生命值的守卫进行两次攻击。确认一次回应和玩家生命值 4。没有加成时,预期三次攻击,两次回应和玩家生命值 3。
- 奖励:仅将药水放置在空闲单元格,或丢弃它。如果在 4 生命值时使用,它将生命值恢复至 5 并消失;第二次使用必须失败。
- 重置:到达出口,重启并验证原始剑和护符单元格,玩家和守卫满生命值,无药水以及第一房间。
对于失败,精确报告布局和操作。例如:“剑占据 (1,1) 和 (2,1);护符不共享边相邻,但攻击仍造成 3。从当前已占用单元格重新计算加成。” 修复后重复一个相邻案例,以确保连接在应该工作时仍然有效。
规划物品形状迭代
作为一个假设的下一步,引入一个占据一列两行的盾牌,并防止来自下一次守卫回应的 1 伤害。允许盾牌在战斗前旋转为两列一行的形状,但要求所有单元格保持在边界内且为空。在评估它是否与现有的剑和护符搭配之前,决定它是起始物品还是奖励。
测试两种方向、一次尝试重叠和一次在背包边缘的旋转。准确定义盾牌的保护何时消耗以及是否在遭遇战之间刷新。这些是待实现和检查的提议规则,而不是已测试构建已经拥有它们的证据。
常见问题
第一个背包应该多大?
小型网格使每个已占用单元格易于检查。示例使用六个单元格,足以容纳两格剑、一个护符和一个药水,同时留有实验空间。当更大的空间创造有用的放置选择时再扩展它,而不仅仅是更多的空闲槽位。
对角接触算作相邻吗?
不算。在此示例中,物品必须在已占用单元格之间共享一条边。仅角落接触不提供加成。您可以设计不同的规则,但请清晰显示并测试边缘情况和对角情况,以便结果符合玩家的预期。
如果奖励放不进怎么办?
给玩家一个清晰的选择,在战斗前重新排列物品或丢弃奖励。永远不要将其放置在另一个物品上或悄悄扩展背包。如果后续版本允许丢弃现有物品,请指定其效果何时停止以及是否可以恢复。
重启应该恢复什么?
新的运行应恢复选定的起始布局、玩家和守卫生命值、房间和初始药水状态。清除前一次运行中收集的奖励和临时效果。在胜利和失败后都测试重启,以便旧的库存或伤害不会意外地延续。
首先让一种排列变得重要
一个小背包和一个基于边的加成可以将打包与战斗和奖励选择联系起来。在添加许多物品类型之前,验证放置、相邻关系和重置。在 SEELE AI 创作者游戏制作器 中开发一套原创物品集,然后测试每种形状或效果如何改变排列。对于更广泛的工作流,阅读 如何使用 AI 创建游戏。


