在实现俄罗斯方块游戏的得分处理时,我上网查找了一下关于俄罗斯方块游戏得分计算的相关内容,但是,并没有找到能够简单清晰的解决我的问题的内容。
互联网的海洋里有着数以亿计的比特信息,但是却唯独找不到能解决你当前问题的有效信息,哪怕是一个并不复杂的问题,不知道你是否也会经常遇到这种情况。信息如洪流滔滔不绝的从你的身边流过,但是却难以取到对你有用的那一瓢。
每当我遇到这种情况时,就会察觉到在信息海洋中盲目寻找终究是徒劳的,有些东西还是得自己干。
怎么寻找俄罗斯方块游戏的记分规则呢?最好的方式就是找一个俄罗斯方块游戏,然后边玩边记录,方法其实就是这么简单。
在玩过了几个不同版本的俄罗斯方块游戏之后,我发现了对于这个经典的小游戏竟然有两种差异很大的记分规则,我给它们起了两个不同的名字,一个叫做“简单平滑版”,一个叫做“高风险高收益版”。
简单平滑版
我们先来看一下“简单版”的记分规则。
每堆叠一个“形状”所获得的分数与等级成正相关,等级越高,堆放一个“形状”获得的分数越高,分数(S)与等级(L)的计算公式为:
S = (L-1) * 2 + 4
就消除奖励来说,一共只有 4 种不同的情况,一次消除的行数越多,获得的额外奖励分数越多。
这个版本的记分规则非常的简单,玩家只需要玩一会儿游戏大概就能够看出其中的计算方式,随着等级的提升,形状的下落速度会变得越来越快,同时叠放一个形状所获得的分数也会相应的增加。计算方式很简单,升级过程很平滑,所以我把它叫做“简单平滑版”。
高风险高收益版
接着来看一下相对复杂的“高风险高收益版”的记分规则。
如图,表格中的行表示的是“形状”当前堆叠的行号(俄罗斯方块一共有 20 行),表格中的列表示的是当前的等级。当前的得分(S)与堆放行号(R)和等级(L)的计算公式为:
S = L2+(R-1)*L
堆放的行号越高,放置一个“形状”所获得的分数越高,另外随着等级的提升,“形状”的分数也会大幅的增加。
堆放的行号越高就意味着距离顶端越近,GameOver 的风险越大,所以分数越高。另外,随着等级的提升,“形状”的下落速度越快,越容易 GameOver,分数也随着指数级的增长。
最后,如果玩家在游戏中使用了加速下落(按住方向键下,让形状快速的下落),则当前“形状”的分数在之前的基础上再乘以 2 。在之前的计算公式中增加一个变量 d (无加速下落时,d = 0;有加速下落时,d =1)。
最终的分数计算公式是这样:
S = (L2+(R-1)*L) *2d
只要 GameOver 的风险越大(堆叠的越高,等级越高,加速下落),所获得分数就越高,所以我把它叫做“高风险高收益版”的记分规则。
至于消除所获得的奖励,两者其实差不多。
这两种记分规则各有其优缺点,“简单平滑版”简单易于实现,但是整个过程过于平滑,缺少了风险和挑战。“高风险高收益”版,在游戏中提供了更多的风险和奖励供玩家选择,但是实现起来相对复杂一点儿。
目前,我制作的俄罗斯方块使用的是“简单平滑版”的记分规则,下个版本将会更新为“高风险高收益版”的记分规则。
因为,玩家喜欢在游戏中冒险。
关于俄罗斯方块的得分的计算属于游戏设计中的数值策划,这大概是最简单的数值策划。从中我们多少能够看出一些“关于数值策划都是干什么”的答案。
即使是同一个游戏,不同的数值计算方案却能够为游戏带来很大的不同。不得不感叹,游戏设计真的是一门很神奇的艺术。
小蚂蚁的俄罗斯方块小游戏已经上线,致敬经典,欢迎体验。
---
我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号【小蚂蚁教你做游戏】就对啦!
也欢迎加小蚂蚁微信(xiaomayi6669),交个朋友。