如何使用 AI 制作一款类似 Peglin 的游戏

构建一个小弹珠板,并追踪接触如何改变射击、其蓄力及其结果。

Seele Editorial Team更新于 2026年11月11日

要制作一款受 Peglin 启发的原创弹珠射击游戏,请让每次反弹都产生玩家可见的后果。在这个虚构的天文台工坊中,一颗蓝色玻璃弹珠从陶瓷钉上收集能量。只有当弹珠带着足够的能量到达正确的接球杯时,继电器才会启动。

从两个发射方向和一个短板开始。重放这两次发射,然后移动单个钉子。对比展示了为什么弹珠可以到达同一个接球杯,却得到不同的结果。

一个带玻璃前门的测试机柜,配有蓝色弹珠发射器、陶瓷钉和底部的接球杯
使用机柜同时展示发射器和目标接球杯。下方的工作表使用了三个接触钉。

在遭遇战中赋予钉子撞击以目的

Red Nexus Games 将 Peglin 描述为一款弹珠台肉鸽游戏,玩家通过撞击钉子来对敌人造成伤害。Steam 官方商店页面也提到使用光球和遗物来改变玩法。

采用一个宽泛的概念:棋盘上的接触点在遭遇战的其他地方会产生影响。为你的版本设定独特的目标和规则。天文台棋盘将接触点转化为充能,并在球弹出时检查该充能值。在调整连续运动之前,先从一个可以手动追踪的网格开始。

先解决墙壁碰撞,再解决钉子碰撞

使用五列(编号 0 到 4)和六行(编号 0 到 5)。x 轴向右计数,y 轴向下计数。球从 (2,0) 开始,初始充能为零。选择“向左瞄准”时,球的水平方向为 −1。选择“向右瞄准”时,方向为 +1。选定瞄准方向后,发射会打出一颗球并锁定该选择。随后的每一步(Step)都会推进一行。

对于每一步,将方向值加到当前的 x 坐标上。如果提议的新 x 坐标超出棋盘范围,则反转方向并从当前 x 重新计算。移动到新的单元格。如果该单元格包含钉子,则增加一点充能,并为下一行反转方向。墙壁反射会改变方向但不增加充能。如果同一步中同时发生这两个事件,先处理墙壁,再处理钉子。

测试机柜中,一颗蓝色玻璃球在陶瓷钉旁反弹
为钉子接触添加短暂的脉冲效果和可见的反弹动画。为墙壁使用不同的提示,以便玩家能区分是哪个事件增加了充能。

将钉子放置在 (1,1)、(4,2) 和 (4,4)。出口行没有钉子。进入 (3,5) 处接收器的球至少需要两点充能才能为继电器供电。如果该杯中的充能不足,报告“充能不足”。如果在其他出口,报告“接收器错误”并显示该次射击收集的充能值。

从同一棋盘重放两种发射方向

下表显示了每次移动后球的状态以及任何接触情况。两次射击的初始充能均为零。在钉子上改变的方向将在下一行生效。

行向左发射向右发射
1x=1,击中钉子。充能 1,方向变为向右。x=3,充能 0,方向保持向右。
2x=2,充能 1。x=4,击中一个钉子。充能 1,方向现在向左。
3x=3,充能 1。x=3,充能 1。
4x=4,击中一个钉子。充能 2,方向现在向左。x=2,充能 1。
5x=3,充能 2。中继器充能完毕。x=1,充能 1。接收器错误。
蓝色球停在带有青色圆环的接收器中,中继器指示灯亮起
显示哪个杯子接住了球,以及中继器是否充能完毕。在射击结果中保留可用的总充能值。

两次射击在第三行的同一列相遇。由于它们之前击中了不同的钉子,它们以不同的方向离开该列。在轨迹中保留位置、方向和充能值,以便解释为什么处于同一点的两个球最终会进入不同的杯子。

给 AI 一个小棋盘和精确的检查

请求 Aim(瞄准)、Fire(发射)、Step(步进)和 Reset(重置),并显示可见的行轨迹。使用一个球,并在每次运行期间保持钉子固定。这使得每次反弹都易于与工作表进行比较。

在观测台车间中构建一个原创的钉子射击谜题。
列是 x=0..4,行是 y=0..5。从 (2,0) 开始,充能 0。
选择 Aim Left(向左瞄准)使 dx=-1 或 Aim Right(向右瞄准)使 dx=+1,然后 Fire(发射)。
在选定瞄准后,仅接受一次 Fire(发射)。在射击期间锁定瞄准。

Step(步进)前进一行。如果 x+dx 会离开棋盘,
反转 dx 并从当前单元格重新计算提议的 x。
移动,然后检查是否有钉子。钉子增加 1 充能并反转 dx。
墙壁反射不增加充能。钉子保持在棋盘上。

钉子位于 (1,1)、(4,2) 和 (4,4)。在第 5 行结束。
在 (3,5) 且充能至少为 2 时,为继电器供电。
在 (3,5) 且充能较少时,报告充能不足。
在任何其他出口,报告接收器错误并显示充能值。

在 Fire(发射)之前拒绝 Step(步进),或在射击期间拒绝新的瞄准或 Fire(发射)。
在结果出现时冻结。重置位置、瞄准、充能和结果。
保留选定的钉子布局以便重复。

在 Fire(发射)之前执行 Step(步进),并检查球是否保持静止。运行两个方向,并在每一行比较三个状态值。尝试在射击中途再次发射。当射击结束时,同时检查接收器和充能,然后 Reset(重置)并重新播放相同的输入。

移动一个钉子并比较相同的射击

将位于 (4,4) 的钉子移动到 (2,4)。保持其他钉子、墙壁、接收器和充能要求固定。向左的射击仍然在第四行到达 x=4,但错过了移动的钉子。在最后一步 Step(步进)中,墙壁将其反射到同一个接收器。它的充能只有一,因此以充能不足结束。

向右的射击现在在第四行 x=2 处击中移动的钉子。它向右反转并到达接收器,充能为二。新的射击为继电器供电。关于在更改后重放构建的指南 可以帮助你在实施后检查相同的比较。

使第一次反弹轨迹易于检查

在添加特殊球或遭遇之前,使用一个棋盘和两次射击。使用 SEELE 的 AI 游戏制作器开始你的原创钉子射击游戏,并将第一次构建的每一行与轨迹进行核对。

常见问题

第一次反弹后我应该记录什么?

记录单元格、充能和出射方向。这提供了足够的信息来预测接下来的 Step(步进)。如果你只存储位置,即使两个球在共享点看起来相同,它们下一步可能会朝不同方向移动。

玩家如何区分墙壁反射和钉子击中?

在边缘给墙壁一个方向提示,并在接触发生处给钉子一个局部脉冲。仅在钉子事件时更新充能。这些独立的提示有助于玩家判断何时改变了方向,以及何时还获得了某些东西。

为什么分开显示充能不足和接收器错误?

这两种结果指向不同的修复方法。充能不足意味着射击找到了目标,但需要另一次接触。接收器错误意味着路线错过了目的地。显示着陆位置和充能,以便玩家决定在下一次尝试中改变什么。

我什么时候应该从网格切换到连续运动?

在你能够用网格解释预期的反弹和结果检查之后开始。在连续版本中,记录两个发射方向的实际轨迹。使用这些观察结果来调整碰撞和时机,并验证充能和接收器提示是否仍能解释结果。

SEELE AI

将这份指南变成可玩的作品。

先明确创作需求,再在 Seele AI 工作区中迭代。

开始创作