一个游戏应该是由数值来驱动的,数值设计最重要的是应用(动词)数学。
看到太多的数值相关的讨论中,策划们更喜欢也更倾向于讨论一些诸如DPS、经验分配(利益分配相关)等的问题,每一个人都举出了不少现象来证实本身推崇的公式,这是一种颇有意义的交流。可是长久下来形成了一种很严重的不应有的结果——行业对于数值设计的理解被扭曲为了数值设计仅仅用于这些领域,且一个好的策划在数值方面的功底应该是这些“倒推能力”。我想这是一种已经造成了必定年数的思想误区,造成这种误区和执行至今有不少因素,我不想进一步讨论这些因素,由于这会带来不少人的不爽,这里我只想说说一个游戏中真正须要用到数值设计的地方(或者说,这才是“数值策划”全部应该作的工做)。
从实际项目出发,咱们来进一步分析,那么咱们必须先拟定一个项目,我就绝不客气的拍脑壳出来一个简单点的项目吧,便于分析且容易理解,那么这个游戏是这样的:
背景简述
玩家扮演的是一个骑士学院的高级教师,使命是传授那些来学校学习的骑士们实战经验,简单的说就是安排战术,让他们去参加一些实战活动,经过实战活动培养他们的能力,当骑士完成学业后,会加入王国的骑士团,根据其加入时的能力总和,国王给出评价来奖励玩家角色,若是骑士被直接选拔如皇家骑士团,奖励会很是丰厚。
系统简述
经营系统:一些基础的装备买卖,任务接受、完成等,都想获得,固然前提是这个游戏仅供咱们讨论问题,而不是要作出来好玩且赚钱,因此这里不讨论挖坑问题。
养成系统:固然如今来看这游戏的养成就只有骑士了,至因而否加入其它挖坑系统来赚钱来使游戏更好玩?个人回答是否认的,由于我不靠它赚钱只靠他说事。玩家对于骑士的培养是从性格方面和能力2方面着手的,每次能够安排骑士突出培养本身某方面战斗能力(表现为训练项目),而安排其余的工做则影响他的性格和经营系统须要的收入等。
战斗系统:标准的SLG(火纹、曹操传之类的,别把神仙道说成SLG了,这是“后时代策划”的标志),放置型(战斗过程玩家无操做,你是训导师嘛,安排战术是你的责任),玩家要作的是开始的时候在容许的位置内安排出场的骑士(位置多于可上场的骑士),每一仗的目标都是必定回合内敌全灭,地图是随机的,根据骑士本身的性格和玩家对其的塑造方向,他在战场上会有不一样的行为。
简单概括:或者说上面这3段都是废话,好吧,这游戏就是玩家放置安排每一个骑士训练生活(美少女梦工厂?)和安排SLG战斗(自动操做的火纹、梦模?)结合,这里不讨论最终好很差玩,咱们只看主题——策划在这个项目中须要进行的数值设计:
角色属性、战斗数值等等基础设计
这些是“数值策划”们最喜欢谈论的内容之一,我以为这里就没有必要反复说这是干什么的了,只是强调一个思路问题,不少时候策划认为咱们先有了哪些属性,而后硬性的给这些属性附上其做用,但偏偏相反,优秀的游戏数值设计过程当中,是先分析世界须要怎样的属性,而后分析我须要些什么属性,接下来是分析哪些属性必须被拆分(为了赚钱也好为了平衡也好),最后敲定了属性后,对其制做公式。
那么回到这个游戏,咱们会有些什么属性呢?最基础的就是攻击力、血量(含上限)、移动力。这些都毫无疑问地用于负责分析每个领域:攻击力决定对方血量的降低速度;血量决定角色能被攻击几回;移动力决定了角色在地图上一回合内移动的格子数。这个游戏的基本属性已经有了雏形了,完了?没呢,这点属性够吗?不够,这只是骨架子,咱们接下来要给他血肉。
在游戏中咱们有物理和魔法两种攻击方式(体现剑与魔法的时代),那么咱们规定魔法不会受到防护力影响,可是物理攻击会,所以咱们必须加入一项防护力,区别出物理和魔法来;为了平衡魔法与物理的攻击,咱们得给角色一项叫作灵性的属性,他决定了角色魔法的命中率(而物理的是一定命中的),此时咱们不难看出本质上物理和魔法2者是平衡的,由于各有优缺点,换成赚钱思路,物理攻击这叫低风险低收益,而魔法则是高风险高回报。固然我不认为这是惟一的解决办法,更不认为这是最好的解决办法,这固然须要设计师本身根据游戏去设计。可是这里有一个核心问题就是——质的平衡,在数值设计中有质的平衡和量的平衡两点,哪一个属性高了低了,叫作量的平衡,而质的平衡则描述了属性自己的价值。
如何去作质的平衡思路很是简单传统,给你一些就要剥夺一些,首先咱们分析出世界上全部等价的事情,好比在这个游戏中,咱们能够看到DPS,假如你的命中率100%,攻击力30,面对防护力10的怪物,形成20伤害(是的,就是减法,这里还无法说减法很差,固然也不在这里说,这里仅为说明质的问题),咱们给他在这个世界中的估价就是20分(20x1),那么同等条件下,命中率80%的魔法,他的攻击力应该是25,不难看出他也是20分的(好吧,别说25x0.8x1=20你都算不出来)。这里x1表明伤害这个事件在世界中的价值,因为世界如今很是简单,没有其余因素影响,因此他就能够是1的,咱们又何须把它定成0.5或者为了显示本身高端把它定义为一个1.3724之类的看起来很不规整的数字自寻烦恼呢?那么思路上上来讲,咱们给了物理攻击受到伤害减免的惩罚,影响了他在伤害这个事件的估价,而给了他必定命中这个“奖励”,影响了他在伤害事件的估价;咱们给了魔法攻击无视防护这个特性影响了他在伤害事件的估价,却给了他可能未命中的“惩罚”影响了他在世界的估价。本质上,这二者平衡了,数据上,经过估价不难看出面对防护力10的怪物,他们二者表现类似(但不可能相等,至于具体差据,实际上是一个几率问题,切比雪夫不等式会给你答案),至于再要进一步分析哪一个好坏,我以为你就进入了禁区了,由于咱们已经制造了一个见仁见智的问题了,这就是给游戏提供了一个乐趣了,咱们不必进一步主观的去把科学的问题复杂化,最后作的要么作不出来要么感受很不对。
思路肯定后,咱们看到可行,那么就加入这两个属性给角色。同时还有些不须要这样去分析的属性也能够被假如,好比咱们须要移动方式——骑马、走路、飞行、木轮(运输队?),这些是由于游戏规则的容许,而且更好的体现世界观才产生出来的,只要道理上说的通,他就合理,可是有一条最基本的道理就是,至少这两两之间必须存在差别,若是我骑马和飞行在各类地形都消耗1点移动力,这就有些荒谬了。那么咱们在这个基础上再加入一种移动模式——履带行不?你说呢?
简单的说,设计这种数值咱们须要从实际出发分析问题,把问题存在的世界看成观察对象,进行简单的估价以后进行属性设计,而后公式化属性,让他起到本身的做用,而公式化的同时,你还须要注意到一点就是你想要的曲线是如何的?你想要的是y=x平方的仍是仍是y=x的1.2次放的?本身分析吧,看你的游戏须要什么,但你必须注意感受要对劲。
那么是否是属性设计到这里就完了?固然不是,否则我也就不写这段了,除此以外,咱们还会为AI、角色成长定一些“隐藏属性”,这些属性玩家肉眼看不到数字,可是你一个自称“数值策划”的人也看不到可就麻烦了。
随机地图产生算法数值设计
上面说的这些都只是基础的设计,若是你以为一个数值策划要干的就是不断地“平衡”不断的“反复测试”上面这块就算工做了,那活该你的薪资低于指望了由于你的工做量也低于了指望了。在这个项目中,咱们还会涉及到一些数值设计,这些数值设计是玩家肉眼看不到的(好吧我不重复相同的话了),可是他们能感受获得,而且在游戏开发中须要用到。
随机地图产生算法,咱们说这个游戏的地图是随机产生的,那么第一咱们就想到了柏林噪声,柏林噪声用于产生3D游戏中高低不平的起伏路,它的核心意义是“平滑”整个曲线,让她更柔美。事实上若是你把它抽象到另一个世界,你能够把这些曲线的值域分段,造成咱们这种游戏须要的地图元素,好比水老是挨着平地的,那么水能够是(0.25, 0.4],而平地则是(0.4, 0.77],好吧,这里的具体数值毫无根据是我拍脑壳来的,只是说明你这样可让水和地面相连,你一样能够设计带草的地面是(0.44, 0.79],再取到0.48的时候咱们再算一次到底带不带草就好。这个数值的值域规划是一个简单的数值工做,这个程序员无法替你完成,因此须要策划本身去完成,首先程序员对游戏如今有多少种地形,未来有多少种地形毫无兴趣,可是对于地形种类会变,但是很反感的,由于“变”老是意味着“麻烦”,所以一个优秀的策划能够用数学来解决这样的麻烦。
那是否是随机地图就有了?固然不是,柏林噪声嘛,你至少还得给版子定义倍频和持续度(BTW,在这个过程当中你应该本身总结一下如何建表,由于我都说了须要的属性了,至于建表技巧,这里我就再也不重复了)。
除此以外,若是为了游戏更精致,咱们还须要进一步工做,那就是用曲线分析出我想要的大概地形,简单的说,咱们的游戏虽然是随机地图,可是根据咱们派遣骑士去的地方特征不一样,他的地形应该随机中也大概有点规律,好比我派骑士去的是魔法森林,都是森林了总不能老都是水和山吧,森林地形应该更多,这不是一个x%的比率设计,x%的设计方式是给非游戏设计师(玩家)来用的,由于他们不须要具有这方面专业知识,而英雄无敌的随机地图生成也让咱们看到了糟糕的x%模式,咱们要作的是,从横向和纵向上对于一个区域进行横截面分析,产生多条曲线,这些曲线符合咱们上面说的值域规则,好比说森林,他的曲线应该尽量保证值域在平原和森林之间(还要在别的之间?固然能够,更优秀的数值设计师能创造更优秀的地图),最后程序根据你传入的横向纵向多条曲线、倍频数和持续度,产生出柏林噪声,而后经过映射到你的值域产生出随机地图来。
所以数值设计,更讲究的是如何应用数学来描述你想要的东西,而不是去用一个公式验算另外一个公式达成否认推翻效果或者支持效果(这个工做也能够经过柏林噪声作的更好)。
寻路算法数值设计
是的,AStar应该是程序员去写,由于他们的优化能力远比策划好,可是有一点程序员写不了,那就是其中的估价算法,可见这样有地形的寻路中,简单的曼哈顿算法再也不合适,那么程序员怎么去作呢?他/她会感到困惑,由于想了一些算法,可能都不太适合你的须要,你很勉强的接受了,也让他/她很为难。
所以策划在这里就须要去设计一个地图单元格的估价算法,这个估价算法是针对移动力的,首先移动类型决定了移动力的消耗,那么最简单的一个作法就是移动力x1就是这个格子消耗力,而程序逻辑中将加分变成减分便可。固然这个算法并不是至关科学,以致于最后表现的时候,角色并不必定按照你真实想法来走,有时候会有些别扭。
好的数值设计师能够作到尽量让他贴切于人的思想,这其中的关键也是看你如何去应用数学创造这个算法。
性格与行为AI数值设计
接下来最要命的问题来了,咱们都说了游戏是放置型的,那么事实上怪物和我方的行动都是AI控制的,这里就有一个AI算法的问题,AI不是应该交给程序员才对嘛?那么程序员,你玩过SLG吗?火纹玩的如何?你对火纹的AI有多少了解?见鬼,老大当初怎么招了你这样一个不玩游戏的程序员了!——只能说你的抱怨毫无根据,由于优秀的程序员把大量的时间花在学习好的程序算法上了,就像好的策划会把大量时间花在研究游戏(而不是玩游戏)上同样,术业有专攻,所以AI设计是策划的工做。
AI的逻辑中实际上是会有不少技巧的,我以前尝试了一个很棒的AI算法,让我写着玩的SLG游戏中双方的角色都很是狡猾,狡猾的以致于我身边不少火纹老手(即便是自称的,他们对于这类游戏也各有独到看法,算是比较Hardcore了)都没法直接理解他们的想法,直到几个回合后他们都拍手叫好,说这几步走的太妙了,太聪明的AI显然效果很很差,由于他们的行为超越了人的理解范围,是的,若是你教会计算机思考问题,他的力量是不可衡量的。固然AI逻辑是一方面,驱动这个逻辑的才是咱们要说的,那就是——数值设计。
首先在这个项目中,咱们就须要为角色定义一些属性(以前说没完么,是没完吧),来影响他思考。那么这个游戏里面角色要思考什么?无非就是移动到哪儿,而后考虑是否打人打谁。“啊呀,这简单,我个角色设定一个目标,而后他就冲着过去好了,好比血最少的”,那你看看效果好很差?固然这样的作法也没错,只是最后高移动力成了惩罚了。咱们至少须要让每个角色,对于地图上的每个单元格进行估价,评估出本回合这些单元格的价值,最高的价值的那个就是他要去的,而走不到的价值确定都是低于1的。
以前个人作法过于复杂,我让每个角色都进行了深度思考,为他们设计了他们的团队精神、他们的进攻欲望、他们的自保内心等等属性,让他们既猥琐又勇猛,最后出来了一个“太聪明”的AI,这就是由于估价的时候考虑了太多的因素,好比“我走到这里,有多少人会打到我,这样我大概受到最大伤害如何(固然我走到这里了也会致使别人的行动范围变化,好比我走到了一个“卡口”那么同一时间只有一个敌人会近战命中我)?我又可能在多少个友军的庇护下?”想的太多,设计出公式酿成了错误。所以首先咱们的数值策划必须定义好每一个角色的想法,而后再用数学去描述出他来,程序员须要作的只是让角色选择一个估价最高的格子过去,至于算法你爱咋该咋改,固然你能够要求程序员为你优化你的算法,毕竟coding技巧不是策划擅长的而是程序员的强项,给他/她你的代码,而后告诉他/她你的想法。
仍是那句话,好的数值设计师会让游戏的AI看起来更天然,数值设计的根本是应用数学。
那么策划在设计数值的时候究竟须要些什么相关的能力呢?我想这也是不少新手想知道的问题,从上面这些须要你去工做的项目来看,不难分析出你须要:
Feeling或者说是灵性
这对于数值策划来讲很是重要,乍一看你会以为数值策划嘛,应该更理性,更相信科学而不是感受,但事实上因为你是在应用数学,用科学去描述想法,所以首先你必需要能创建出好的想法,符合游戏的Feeling的想法来,而一些基于这种灵感或者说Feeling的突破,才能被真正的称为是创意,更重要的是创意别人感受获得,看不到,而你却用数学把他营造出来了让别人感受到了。
会使用搜索引擎
知识在这个年代是廉价的,由于网络已经再也不是神话,谁都能经过百度和谷歌找到想要的知识,而你须要掌握的是,知道我要的知识是什么,而后输入到搜索框,寻找出你想要的答案就好。咱们不是搞教育的,不须要你“学生”把全部东西都背出来,用那些随手就能查到的东西来填充你的大脑。
善于创建函数(或者说一些人说的数学模型)
对于任何事物,请用创建函数的思想去思考,这很重要,这也是逻辑化的关键(同时我对于男性游戏策划的要求如此,而对于女性我要求的是在UI设计方面的灵感,人类的染色体造就的这两个方面的不一样优点真是无法改变的,所以只能从区别要求出发),千万不要提“通常状况下”,这表明你根本没有用函数去思考,函数是一种天然规则——“当温度变成30度的时候,人会感到热、狗会吐出舌头;当温度到0度的时候人会感到冷、狗会……抱歉我没这方面知识,须要搜索一下。”这就是大天然,一个函数,而不是if 30度如何如何,else if 0度如何如何,那么28.34度呢?
应用数学分析并构建世界
当你有了idea以后,善于用数学去观察他,简单的用工做中的例子去看——你须要设计一个升级经验表,你但愿这个数值增加是怎样的?用曲线去描述,肉眼一看就知道,以后就是把曲线函数作出来。进一步说明就是你的老大但愿“我在20级是一个坎,60级是另一个”,那么升级经验的2个点有了,再加入你的想法以后进行插值得到函数。固然这并非单向的,还包括了得到等因素,但你思考的时候必须先统一为一个数去分析。
演算和验算能力
一些东西要会去演算会去抽象,演算是验算的基础,至少你先得搞清楚事情,才可能去分析事情的好坏,不只仅是数学公式,世界上的一切都如此,由于你须要会用数学去分析世界。好比说本篇中我定义的这个游戏的玩法,你能演算出他最后是如何的吗?那么让你来作你会如何改进?