下面我们来展示一下如何用Machinations 示意图来模拟一个简单游戏的机制。我们使用的案例是经典街机游戏《吃豆人》(Pac-Man),我们将会把模拟这个游戏的过程分解成六步,并在Machinations 示意图中逐个实现它们。首先,我们会找出游戏中最重要的资源。然后,我们会逐项模拟游戏的各个机制。为了便于区分,我们会为每种主要机制指定一种颜色。最后,我们会把这些机制结合起来,构成《吃豆人》游戏的完整机制示意图。
必须强调的是,我们在这里只是实现了一个近似的模拟,并没有原封不动地将《吃豆人》重现出来。例如,我们在模拟时将鬼怪离开房间的频率设置为固定的,每五个时间步长就有一个鬼怪离开房间。但在实际游戏中,判断鬼怪离开房间时机的算法比这复杂,虽然我们也可以将这种算法模拟出来,但这会导致示意图过于繁复。毕竟在这个案例中,我们的目的是教你如何使用Machinations 框架,而不是分毫不差地把实际游戏复制一遍。
游戏中的资源
我们将使用以下几种资源来模拟《吃豆人》的机制。
-
豆子(dots)。游戏的迷宫中散布着许多豆子,玩家必须控制吃豆人把它们全部吃掉才能过关。这里的豆子是一种有形资源,玩家必须全部消灭掉它们才能获胜。豆子的数量是固定的,不会随着游戏的进行而产生,除非玩家进入下一关。
-
大力丸(power pills)。每个关卡中都有四个大力丸,吃豆人吞下它们后,就能获得吃掉鬼怪的能力。大力丸是一种稀少的有形资源,玩家必须合理加以利用。跟豆子一样,大力丸在游戏中也无法产生,而只能被消耗掉。
-
水果(fruits)。迷宫中有时候会出现水果,吃豆人吃下水果可以获得额外分数。
-
鬼怪(ghosts)。游戏中有四个鬼怪,它们会满迷宫追逐玩家控制的吃豆人。鬼怪可能所处的位置有两个:一个是迷宫中央的“鬼怪房间”(Ghost House),另一个是迷宫中。当一个鬼怪离开房间进入迷宫后,它就开始追逐玩家。鬼怪也是一种有形资源。(注意:资源并不总是有利于玩家的东西!)
-
生命(lives)。游戏开始时,吃豆人拥有三条命。这个游戏中的生命是无形资源,一旦玩家损失掉所有生命,游戏就会结束。
-
危险度。为了模拟出鬼怪追逐玩家所产生的结果,我们定义了一种叫做危险度(threat)的抽象资源。当危险度越过某个界限时,就表示吃豆人被鬼怪抓住,并损失一条生命。注意,我们并没有模拟迷宫本身的形状(Machinations 没法做到这一点),而只是模拟游戏可能处于的状态,以及资源的流动情况。
-
分数(points)。吃豆人