游戏数值策划,策划游戏数值(3)了解关卡和经验值的设计。

本系列的最后一篇文章是很久以前写的。如果继续上面的话,这篇文章应该和大家谈谈“战力的价值”。但最近对“档次”的设计有了更深的理解,所以想先把这部分分享给大家。是啊,老李,我就是这么随便的。

众所周知,游戏价值取决于游戏本身的设计。没有游戏设计的数值设计只是纸上谈兵。这个问题我想了有一段时间了。大家都知道,我最近在做MMORPG学习项目,这个项目还有很多需要设计的地方,所以我也用这个项目和大家一起完成这样一个MMORPG游戏的数值设计过程!

该项目已经在github上开源,欢迎各位朋友来星。

Liweimin0512/uRPG?github.com

我们的数值设计部分放在设计目录下的数值设置目录中,如下图所示:

所以在某种意义上,这仍然是MMORPG开发日志的一部分,但是我把它放在了这个关于游戏规划的专栏里。

RPG游戏一定要有“水平”。

我这里说的等级是一个广义的概念。也许不是用户(玩家)直观感受到的一个数字,但却是用户(玩家)直观感受到的一个核心参数。所谓核心参数,就是游戏的核心玩法,或者说是核心成长模块的一个总影响力参数。其实游戏里的关卡大部分时间都在扮演这样的角色。

这个其实是给玩家和我们开发者的(尤其是我们的游戏数值策划)。

对于玩家来说,这个核心参数必然是他最关心的。为什么?因为这样一个参数影响了游戏的方方面面,换句话说就是“游戏进程”,传统MMORPG的做法是什么?游戏中可能会有装备系统、技能系统、天赋系统等核心训练系统,也会有注入副本、战场、竞技场等方式。这些系统和玩法通常伴随着关卡的开启和变化。

对于开发者(数值策划)来说,这种对游戏过程的控制是有意的。玩家在游戏中的角色必须增长。这是RPG游戏的核心体验之一。但增长伴随着数字的变化,这将导致MMO(大型多人在线)游戏的平衡问题。平衡——或者说角色之间的强弱平衡变得尤为关键。

后来MMORPG在这方面有所发展和进步,甚至用“取消关卡”作为宣传噱头,但我们知道这些游戏通常只是取消了肉眼可见的“关卡”。但是,约束玩家游戏进程的核心参数只是以另一种形式存在。

这里我插一句题外话,就算我们只是去掉了玩家可见的“关卡”,也已经是很大的进步了,因为这个去掉并不是简单的“删除”。而是为此付出更高的代价。等级删除带来的问题也随之而来,尤其是前期和中期。比如:玩家最初的目标变得非常不明确;玩家前期缺乏核心追求,容易迷失。

当我们去除等级后暴露出来的问题出现时,我们更加意识到等级存在的意义。

但如果关卡只是一个数值,对游戏中任何其他系统都没有影响,那么关卡就变得没有意义了。所以我们要明确一个显而易见的道理:等级本质上不是核心参数,核心参数本质上是等级。

总之,档次是一个性价比很高的设计。建议在完全放心和有经验的情况下,才可以使用。

我爱成绩,但这毕竟不是一篇赞美成绩的文章(笑),还是实际设计一下成绩吧!

这里我们设计我们的游戏包含60级,达到满级后可以继续积累经验值获得“巅峰等级”。也就是说等级没有上限(暴露我们玩刷游戏的企图)。而且我们期望玩家每天玩2个小时,可以玩2个月。

然后我们直接拉出一切的开头:

然后我就简单的放在脑子里了。我们预想的是第一天10,第二天5,第三天3,第四天2,20,然后从第五天到第二十五天,维持日均1的节奏,40。现在还剩20关,还有35天。我们就让最后的10天涨到1,那么中间的10级别就需要15天才能上涨,这就是1.5天的节奏。

我们保持级别越来越难上升的节奏,从最初的1天级别到1天级别,再到一天半1天级别到最后两天级别。

不知道为什么,我觉得挺有道理的。

为什么一开始一天多级?这是我们操作员训练的结果。尤其是手游用户,刚开始的几天,游戏的粘度低得不能再夸张了。但运营商过于注重注入“次日留存”、“7日留存”等数据。所以一开始就要尽可能的感受自己的“成就”。

所以第一天10其实很保守。

话又说回来,以上只是我们简单的估算,但如果是实际效果,我们还是用公式来简化我们的操作,因为我们想要达到的效果是一步一步一级来的。在这里,我们使用公式来计算每一关所用的时间,以秒为单位。

公式很多,设计层面我更喜欢用分段幂函数。这样就可以实现每个年级段的难度变化(通常10为一个年级段)。这是梦幻西游采用的设计,因为10的每一关通常都是一个重要的里程碑,会解锁一些新的玩法或系统,武器装备也会更新。因此,在每个关卡段开始时快速升级,结束时放慢升级速度,让玩家在一段时间内感受到压力,在穿越关卡段时压力得到释放,从而达到流畅的效果。

前面说过,很多在初等数值上容易犯的错误都是本末倒置,固执地坚持或者相信某个公式的完美。我们应该认识到,公式只是我们在数字上实现目标的一种手段。换句话说,上面的排名配置表可以手工完成,但是会比较麻烦。

既然是设计分段函数,就要有分段不同级别的参数。如上图所示,后面会介绍指数、乘数、加数的含义。

作为分段函数,我们需要一个辅助列来表示等级所在的分段,如下图所示:

你是怎么做到的?其实手工填写是可以的,但是我比较懒,所以用了一个公式来完成这个操作:

我们可以把分数/9.9四舍五入。其实这也是我们的设计意图,我们只是通过公式让excel理解了我们的设计意图。

之后是最关键的时间等级曲线。首先,我们使用mod函数将每个分段的等级从小到大排序。

很简单。我们用mod (level,10)的方式对10范围内的数从小到大进行编号,但是10的每一级都会变成0,这会干扰我们的公式,所以我们在mod (level,10)的基础上加上+1(或+)。

理解了上面的运算,就不难理解这个公式了。我们可以通过索引和分段辅助列找到对应的指数、乘数和加数,然后将数字求和得到我们想要的时间:

之后,时间单位从秒转换为天。需要注意的是,我们这里所说的“日”只是一个预期参数,是基于玩家每天游戏时间2小时的假设。但理论上玩家一天可以玩10分钟或者24小时。如果球员的上场时间比预期的少,那是另一个不在讨论范围内的问题。但如果玩家每天的游戏时间严重超出预期,就需要设计相应的手段,比如手游中简单粗暴的“锁级”机制。

之后计算累计时间,秒和日单位也拉出来方便我们调整。

也许你注意到了,这里的分段时间其实是为了让我们最终的设计达到最初的预期。这里我们只是在这里提取曲线中需要的数据,方便我们在调整指数、乘数、加数时更快的看到耗时,然后不断调整。

上图中我没有标注这个列,但聪明的读者应该已经意识到,这其实是一个加数辅助列。公式中设计加数的目的是将每一段的起点和前一段的终点连接起来(简而言之,这段的1级比前一段的满级用的时间长),这个加数只需要比前一级用的时间长,直接等于前一级。

也可以通过调整指数和乘数观察曲线变化来推断参数的意义。该指数决定了曲线的陡度,即每一级耗时变化的强度。乘数是放大增长的值。

至此,我们的成绩耗时曲线已经设计好了。

我本来打算用一篇文章来解释等级体验的数值设计。但是好像仅仅是等级的耗时曲线就啰嗦了很多,所以这篇文章就到此为止,下一篇文章我们再继续讲经验值输出设计的完成。完工等级经验值的输出与消耗的数值设计。