《再下一层(One More Level)》9 月开发日志

作者:Bozar
2020-09-16
16 2 0

《再下一层(One More Level)》是一款回合制 Roguelike 游戏,使用 Godot 引擎 制作(我写的教程)。当前版本是 0.1.1,可以通过 GitHub 下载。这款游戏准备了一系列运作机制和胜利条件截然不同的主题地下城(目前有三种主题:骑士,沙漠,冥河),每次开局挑选并生成一座单层地下城,通关(或者失败)时间不超过几分钟。接下来我想谈一谈《再下一层》的设计思路。

最初的灵感来自这个问题:在 Roguelike 游戏中,怎样缓解永久死亡带来的挫败感?我参考了 HyperRogue介绍文章),希望把单局游戏时长压缩到五分钟以内,同时做到规则变化多,但是简单易懂。

我通过地图大小和倒计时规则控制游戏时间。游戏分辨率限定为 800x600;状态栏在屏幕右侧,显示关键信息。根据这两个限定条件最终确定地图尺寸:长 21 格,宽 15 格。长宽都是奇数,因此有一个位置在地图正中央,比较美观。地图不大,哪怕考虑到地形限制,移动到某个位置也不用按键太多次。另一方面,玩家人物每一次行动都将使得计时器减一,最大值 24,计时器归零后游戏失败。但是呢,如果一局游戏只允许按键 24 次,时长偏短了,所以地图里提供了逆转计时器的资源。不难想象,调节资源数量和逆转时长能够显著影响游戏体验。

游戏只用到五个按键:四个方向键和空格键。玩家可以在游戏内查阅全部帮助文档,具体分成三页:第一页介绍了当前地下城的特殊规则,第二页罗列了所有按键,第三页讲述了设计灵感、倒计时规则以及如何修改配置文件。每次遇到新的地下城时,后两页文档是通用的,只有第一页规则需要重新学习。

骑士(Knight)

图 1:骑士。

骑士(Knight)是我制作的第一座地下城。粗看起来,环境与敌人类似最常见的 Roguelike 游戏元素:石墙无法摧毁、不可通行;玩家人物和非玩家人物(骑士)每轮移动一格,并且只能攻击相邻目标。但是这里的骑士拥有三种状态:普通,警戒,分心。普通状态的骑士相当于会移动的石墙。警戒状态下(标记为感叹号),地图上显示出骑士下一轮的攻击位置。此时,玩家人物可以翻滚到骑士身后空位。骑士攻击后陷入分心状态(标记为问号),原地停留一轮。只有分心的骑士才能被攻击,普通和警戒状态的骑士不会受到伤害。这套机制把攻击拆分为两轮行动(骑士:警戒,攻击;玩家人物:翻滚,攻击),玩家除了要留意攻击时机,还要关注敌人身后是否有空位,相比普通的碰撞攻击多了一些策略。我试图用这张地图模拟《黑暗之魂》中与黑骑士的战斗体验。

沙漠(Desert)

图 2:沙漠。

沙漠(Desert)参考了 HyperRogue 的同名地下城。长条沙虫(Sandworm)在地图上无目的地移动,过了一段时间后潜入地下,留下一座可以破坏的沙丘。玩家人物没法消灭沙虫,只能采集沙虫体表第三至五节分泌的香料(Spice)。与骑士地图相比,沙漠的建筑、敌人体型与行为模式、玩家人物与游戏世界的互动方式都截然不同。

冥河(Styx)

图 3:冥河。

冥河(Styx)里没有敌人,玩家的对手是不断变化方向的冥河水流。游戏目标比起前两座地下城也更加简单,既不是消灭骑士头目,也不是收集足够多的优质香料,而是从左下角出发,赶在灯笼燃油耗尽前抵达右上角。这座地下城同样参考了 HyperRogue,我希望用前两张地图里装饰性的地形创造出有趣的挑战。

虽然游戏时长很短,我还是把每张地图的胜利条件细分为多个阶段,给玩家带来逐步达成目标的乐趣。在沙漠地图里,玩家需要收集五份优质香料,这是最明显的胜利进度条。在骑士地图中,特殊敌人按照 1-2-1 的节奏出现。消灭第一个骑士队长后,后续两名队长才会上场,骑士头目在三名队长全部阵亡后加入战斗。冥河的节奏感更加含蓄。碰撞地图中间的灯塔可以逆转倒计时,但是仅限一次。玩家通常会把抵达灯塔作为冥河摆渡的中点。运气好的话,也可以不经过灯塔,直接抵达港口。因此,灯塔是可选择的中期目标。


暂时就说这么多吧。希望大家喜欢《再下一层》!