写在前面
这个系列上一篇已经是很久之前写的了,如果承接上文,这篇文章应该和大家聊聊“战力价值”。但我最近对“等级”的设计又有了更深刻的理解,因此想给大家优先分享这部分,没错,老李我就是这么随性。
众所周知,游戏数值是要依赖于游戏本身的设计的。没有游戏设计的数值设计不过是纸上谈兵。这段时间我也在思索这个问题。大家也知道我最近一直在做的MMORPG学习项目,这个项目中还是很多需要设计的内容,因此也用这个项目来和大家一起完成这样一款MMORPG游戏的数值设计过程吧!
项目已经开源在github上,欢迎小伙伴们star
我们数值设计的部分,放在设计
目录下的数值设定
目录下,如下图所示:
所以某种意义上,这依然是MMORPG开发日志的一部分,只不过我将其发布在了讲述游戏策划
的这个专栏里。
关于等级
RPG游戏一定要有“等级”。
我这里说的等级是一个宽泛的概念,可能它并不是一个用户(玩家)直观感受到的数字,但它却是用户(玩家)直观感受到的一个核心参数
。所谓核心参数,就是游戏核心玩法,或者说核心成长模块的一个总影响参数,实际上游戏中的等级大多时候扮演这样的角色。
这其实是对于玩家和我们开发者(特别是我们游戏数值策划)两方面而言的。
对于玩家而言,这个核心参数势必是他最关注的,为什么?因为这样的一个参数,影响了游戏中的各个方面,换句话说就是“游戏进程”,回想一下,传统MMORPG的做法是怎么样的?游戏中可能有装备系统、技能系统、天赋系统等核心培养系统,也会有注入副本、战场和竞技场等玩法。而这些系统和玩法,通常都是伴随等级开启和变化的。
而对于开发者(数值策划)而言,这种对于游戏进程的控制是我们有意为之的。游戏中玩家的角色必须成长。这是RPG游戏的核心体验之一。但成长就伴随着数值变化,这种变化在MMO(大型多人同时在线)游戏中就会衍生出平衡问题。平衡——或者说角色间的强弱平衡变得尤为关键。
后来的MMORPG在这方面发展进步,甚至以“取消等级”作为宣传噱头,但我们知道,这些游戏通常只是取消了玩家肉眼可见的“等级”。但约束玩家游戏进程的核心参数只是换了种形式继续存在罢了。
这里我插一句题外话,即使只是将玩家可见的“等级”去掉,也已经是很大的进步,因为这种移除并不是简单地“删掉”。而是要为此付出更大的代价。因为等级被删除而导致的问题也随之而来,特别是在前中期。 比如:玩家初期目标变得很不明确;玩家前期缺少核心追求容易流失等。
当我们将等级移除后暴露的问题出现后,我们也就更清楚等级存在的意义。
但如果等级仅仅是一个数值,而没有对游戏中的其他任何系统产生影响,那么这个等级也就变得毫无意义。因此我们要清楚一个在浅显不过的道理:等级先天不是核心参数,核心参数先天就是等级。
一句话,等级是一个性价比极高的设计。在没有十足的把握和经验能将其去掉前,建议沿用。
开始我们的等级设计
我热爱等级,但这毕竟不是一篇对等级歌功颂德的文章(笑),因此让我们来实际动手设计一下我们的等级吧!
这里我们设计我们的游戏包含60级,在满级之后继续积攒经验值就可以获得“巅峰等级”。也就是说等级是没有上限的(暴露了我们要做一个刷子游戏的企图)。并且,我们预期玩家每天游玩2小时,可以玩两个月。
然后我们直接拉出一切的开始:
然后我简单在心里捣鼓了一下,我们预期的是,第一天10级,第二天5级,第三天3级,第四天2级,这就是20级,然后从第5天到第25天,维持平均每天1级的节奏,这样就是40级。现在还剩20级,还剩35天,我们让最后的10天两天才能升1级,这样中间的10级就需要15天来升,就是1.5天一级的节奏。
我们保持着等级越来越难升的节奏,从最开始的的1天多级,迅速变为1日1级,之后过渡为一天半1级到最终的2天一级。
不知道为什么,就觉得还挺合理的。
为什么最开始的时候是一天多级?这是我们被运营方调教的结果。特别是手机游戏用户,在最开始的几天对于游戏的粘度低到夸张的地步。而运营方有过分关注注入“次日留存”、“7日留存”等数据。因此我们要在开始时尽可能的感受到自己的“成果”。
所以第一天10级其实已经很保守了。
然后说回来,上面只是我们简单估算的,但要是实际的效果,我们还是采用公式来简化我们的操作,因为我们想要达到的效果是每个等级循序渐进的。这里我们用公式来算出每一级所用的时间,单位是秒。
公式有很多,设计等级我更喜欢使用分段的幂函数。这样能够达到每个等级段(通常是10级为一个等级段)内都有难度变化。这是《梦幻西游》采用的设计,因为每个10级通常都是一个重要的“里程碑”,会解锁一些新的玩法或系统,并且武器装备也会更新换代。因此在每个等级段开始时迅速升级,在末期放缓升级速度,让玩家在一段时间内感受到压力,在跨过等级段时候压力得到释放,如此循环达到心流效果。
利用公式设计等级曲线
我之前说过,许多初级数值容易犯的错误,就是本末倒置,固执的坚持或者说信奉某个公式的完美。应该意识到公式只是我们数值实现目的的手段。换句话说,上述我们的等级配置表,完全可以通过手填的方式来搞定,只是这样会更麻烦一些罢了。
既然是设计分段函数,那么我们就要有不同等级段的参数。如上图所示,其中指数、乘数和加数的含义我们之后介绍。
作为分段函数,我们就需要一个代表等级所在分段的辅助列,如下图所示:
怎么做到的?手填其实也可以的,只是我比较懒,所以用了个公式完成这个操作:
我们通过将等级/9.9然后向上取整就可以了,其实这也是我们设计的意图,只是通过公式的方式让excel理解了我们的设计意图而已。
之后就是最关键的,时间等级曲线,我们先用mod函数,将每个分段的等级从小到大排序。
很简单,我们用mod(等级,10)的方式就将10级之内的数从小到大编号了,但每个10级都会变成0,这会干扰我们的公式,因此我们在mod(等级,10)基础上+1(或者+2),这取决于我们希望曲线是什么样的。
理解了上面的操作,就不难看懂这个公式了,我们通过Index和分段辅助列,找到相应的指数、乘数和加数,然后和编号运算就得到了我们想要的时间:
时间(s)= 编号^指数*乘数+加数
之后就是将时间单位从秒转化为day,要注意这里我们所说的“天”只是一个预期参数,是基于玩家每天的游戏时间为2个小时的。但玩家理论上可以每天游戏10分钟或24小时。如果玩家游玩时间少于预期时间,那是另一个问题不在这个讨论之列。但如果玩家每天的游戏时间严重超出预期,就要设计相应的手段,比如手游中有简单粗糙的“锁等级”机制。
之后就是求出累计时间,同样是秒、天两种单位都拉出来,方便我们调整。
也许你已经注意到这里的分段用时,其实是为了让我们的最终设计符合最开始的预期。这里我们只是将曲线中需要的数据提取到这里,方便我们调整指数、乘数和加数时更快速的看到用时,然后不断地调整。
上图中这一列我没有标注,但聪明的读者应该已经意识到,这其实是加数辅助列。我们在公式中设计加数的目的就是让每个分段的起点都能和上一个分段的终点接上(简单说就是这个分段的1级要比上个分段的满级耗时更长),这个加数只要比上一级的耗时长即可,我们这里直接等于上一级的用时。
通过调整指数、乘数观察曲线变化也能推断出参数的含义。指数决定了曲线的陡峭程度,也就是每一级耗时的变化剧烈程度。而乘数则是放大了涨幅的数值。
至此,我们等级耗时曲线就设计完了。
下期预告
本来打算用一篇文章讲清楚等级经验的数值设计。但看起来仅仅是等级耗时曲线就啰嗦了很多,那么这篇文章就先到这里吧,下一篇文章我们继续讲经验值的产出设计完成。完结等级经验值的产出与消耗数值设计。