独立开发者:如何为冒险游戏做随机关卡
Gamelook报道/很多游戏都会有通关、打怪和解谜设定,尤其是冒险游戏。对于规模比较小的团队,特别是单枪匹马的开发者来说,创作大量的地牢和关卡是非常耗时间的,所以不少独立开发者都会制作随机关卡生成器,这样不仅可以提高游戏的可重复性,还可以最大化地节约时间。最近,一位名叫 Pascal Bestebroer的独立开发者在博客中讲述了随机关卡生成器的设计理念,以下是详细的博文内容: 多年来,我一直都在写程序化关卡生成,包括从《Gunslugs 1》非常简单的关卡,到最初版《Heroes of Loot》里更加有趣的随机谜题。对于我来说,增加程序生成关卡最大的原因在于,它可以提高游戏的可重复价值,因为它可以产生无限数量的游戏房间。而且,它所生成大量的内容对于单枪匹马的开发者来说是非常耗时间的。 在本周发布到Early Access的《Heroes of Loot 2》里,我希望提高此前做的所有关卡生成编辑器,不仅让它们得出有趣的地牢,还可以增加可解决的任务和挑战。 确定游戏设计 我开始着手做一些地牢,它们有一个主通道、一个开始房间和一个出口房间,这个通道应该有很多个可选路线作为分散玩家注意力的因素,有可选的出口或者通向任务所需重要物品所在地的位置。 最后,这个主通道还应该有被很多门隔开的走廊,你需要找到要是、解决谜题或者击败怪兽才能够通过。 地牢里充斥着各种形状和形式的敌人,拥有标准化的资源、稀有物品、财物宝箱、魔法宝箱以及可破坏场景等等。 任务方面,我们有时候需要放置雕像、祭坛,给一个房间放满东西,或者放置特殊物品。 这些都是我们做关卡生成器的的时候必须考虑的功能,确保这些东西都可以正常运转,保证每个关卡都是完整而且有趣的。 创造初始房间 和关卡设计师的工作一样,地牢生成最开始也是要做首个房间,从这个区域开始,后续的所有地牢看起来都像是一棵树的不同分支,后续的每个房间都需要考虑此前的地点、主通道以及地牢和任务的要求等等。
初始房间 我决定永远不给第一个房间放置敌人,这样玩家们可以在进入新地牢的时候可以获得短暂的休息,这个房间里零散分布着随机的场景,玩家们可以在通过的时候获得健康值和经验值。 第一个房间做好之后,紧接着我们要做的就是从东南西北挑选一个随机方向,这就是地牢的区域持续延伸的方向,房间与房间之间要有走廊,而且走廊的长度不能低于2个tile,这样你才能为之增加一个门。 延展区域 创作走廊是我们做递归世界生成器的第一步,一旦走廊的方向和大小确定之后,我们还会基于走廊的终点挑选随机的大小和位置创作下一个房间。 当这些数值确定之后,我们首先要检查是否必要的区域是否仍被闲置着,这样才不会把现有房间和走廊做的重叠,如果走廊或者新房间的区域被占用了,我们就要重新计算,并且选择新的随机方向,这样不断地重复,直到找到一个不重合的区域做走廊和需要的房间,否则的话,我们就必须放弃并且完全停止地牢的创造,发生这种情况是有可能的,因为有时候地牢当中所剩的空间已经没办法再做任何的房间。 在这款游戏里,我避免了房间与走廊的重叠,因为我们从开始到完成地牢只需要一条路,这样我们就可以增加任务,并且可以确保玩家没办法选择另一条路来避开上锁的门或者任务。 除了主通道之外,我们还尝试给每一个房间都增加随机的分路,这样不仅让地牢变得更加有趣,还方便我们需要增加任务和藏钥匙的房间。 对于每一个房间,我们都增加了二级分支,还标记了可能藏钥匙的位置,这将会被用在任务生成代码中。 门、钥匙和任务的放置 上面的顺序介绍了我们所创作的地牢的外星,包括从初始房间、走廊到接下来的房间,我们按照这种方式生成很多房间,直到地牢里没有做更多房间的空间为止。在创作新走廊的同时,我们还尝试放置任务,比如把钥匙放在此前创作的房间里、在门被打开之前增加一个需要击杀的小BOSS等等。
所以在我们放置走廊的时候,选中了一个随机点、从已经挑选的任务当中随机放置一个,有些任务非常简单,只需要之前房间的一个地点就可以藏钥匙,或者,你也可以放置一个雕塑。 其他任务则会检查此前创作房间的备用通道,看是否满足要求。比如一个小BOSS战需要最小尺寸的房间和足够的挪动空间,如果这样的房间没有的话,那么这个任务就没法做,所以这样的通道就不用添加一个门。 在这一切就绪之后,我们在可选道路上增加一个解锁任务的门,甚至还可以在门的前面增加一个角色,向玩家解释需要怎么做才能开门,这时候我们的地牢就有了任务。 特殊房间 标准的房间和通道是必要的,但对于地牢里的房间,我们还有更多的处理方式。当放置一个房间的时候,我们首先要处理的就是特殊房间的功能,房间的大小、走廊位置以及随机数值都会决定我们是否可以把它用作特殊房间。最基本的用途就是做成商店,所以,如果一个房间达到能够放置一个角色、几张桌子和一些物品,那么它就可以作为商店,不用增加什么任务。这种情况下,我们要限制每个地牢里特殊房间的生成数量。
其他这样的特殊房间可以放满东西,或者还可以做一个放置特殊宝箱的房间,不过这个房间进入之后会有一堆敌人攻击你。 房间内容设计 在创作房间阶段,我们只是做了一个空空如也的区域,不过除非你想要一个当作走廊的房间,否则就一定要增加一些其他东西。做好了房间之后,要留出一定的空间放置其他东西。如果房间足够大,你还可以在边缘做一些随机区域,增加墙壁和小的走廊。随后,我们可以增加怪兽和资源,有时候还可以增加蜡烛为玩家照亮整个区域。
游戏永远都需要完善 在研发《Heroes of Loot 2》的时候,我大多数的时间都用来做关卡生成器,我在一直不断地为之进行提高,增加功能并且修复关卡生成bug。你做的生成器越大,就会有越多地方出错。由于是随机生成的,所以我不可能测试所有的房间、走廊、任务以及敌人。 我对于目前游戏的状态感到自信,这也是我把《Heroes of Loot 2》发布到Early Access的原因,这款游戏里有无限的可玩地牢可以生成,而且,只有玩家们测试之后才能确定是否还会有错误发生。 |