数值计算流程与概况
1. 卷首语•数值计算简述以天堂为例的韩国的网游的入侵,把网游界的画面要求提高到一个境界,画面表现慢慢变得不再是好网游的门槛;以魔兽为例的欧美大作的进军,把网游界的系统和内在要求提高到另一个境界,系统和玩点也变得不再是好网游的门槛。国内网游目前最大的门槛在于数值计算——一块在解决美术与系统门槛之前被搁浅着的核心部分。
数值计算可以说是游戏内部数据组织的最重要的一个环节。数值计算的输出数据是为游戏的数据库而服务的。
当然,数值计算的结果并不是一步到位的,这些数据无法保证不用作丝毫调整即可在游戏中不出一点差错的达到完美平衡。通过复杂的数值计算得到的数据,首先会填写到游戏的数据库中,而后通过封测、内测、公测的多次验证和缺陷暴露,由数值计算人员和公式总设计师共同校正游戏的公式或者修改调整部分的数据,这样不断地重复校验和修改的过程,游戏的数值才会慢慢趋于完美的平衡。
2. 数值计算在项目制作中所处的环节
如下图所示:
http://school.ogdev.net/upload/img/5275711398.gif
正如上图所示,数值计算处于系统案细化阶段与数据库填表阶段之间,而后者跟客户端整合阶段并行,客户端整合以后则交由QA进行测试。从系统案细化完成到客户端整合这两个阶段间经历的时间比较漫长,包括系统细化案的程序执行、操作与交互界面的设计和美术资源的制作与执行三大块。
因此,可以这么说,数值计算阶段可以说是一个相对比较独立而又历时比较长的制作阶段。
3. 数值计算人员的要求
数值计算可以说是技术含量相当高的一个制作流程,由于其要求之高,该制作环节对其人员的素质具有一定的要求:
数学基础。数值计算需要经常和数字、公式打交道,数学的基础是从事数值计算的人员一项不可或缺的能力。高中的数学,各种函数的定义与特征、等差等比数列及其求和等自然丝毫不能忘却,而高等数学也需要经常用到,包括正态分布、概率统计、离散数学等诸多相关的技术。一定程度上可以说,数值计算要求的是数学专业的人员,至少是理科出身。
紧密的思维。数值计算需要制作人员具有紧密的思维,公式设计者自然需要如此,每一条公式不仅仅针对一个数值而已,数值计算过程中的所有数据就好像一个紧密而复杂的网状结构,环环相连,牵一发动全身,稍有不慎即会影响到整个战斗系统、或升级系统、或职业系统、或经济系统……填表的人也丝毫不能错乱思维,一来公式是死的,数据需要适应游戏而微调,对微调的数据和公式产生的数据,填表人员需要有敏锐的触觉;二来,填表人员也需要时刻清楚并警惕数据间的全局联系。
对数字敏锐,乃至敏感。对数字的大与小的概念一定要很灵活而又很敏感。对数字敏感,不单要对单个的数字的差异有所敏感,还需对整个数值段都具有敏感的触觉。例如一列不同等级的攻击力数据,需要从中迅速观察并在脑海里构造出其数值曲线。
耐苦、负责并能承受压力。正如前文所说,一个游戏的数值计算过程并不是几天或一周的事情,而是一个至少历时两三月才初步完成的过程,计算完毕以后还要不断的修正甚至重设计公式。数值人员需要每天对着多张填满密密麻麻的数值的表格,并且经常需要心算和笔算,如果没有耐苦、负责和能承受压力,或者喜欢这份工作的人员,势必很快感到枯燥繁琐,而更严重的是导致数值计算上的出错,这是比工作效率下降要严重百倍的后果。
经验。理所当然,经验是数值计算的宝贵资源。经验分为两种,游戏的经验和数值计算的经验。前者指从大量的游戏过程中获得的感觉积累和公式积累,这并不单单能靠几款网游的浸淫就能造就的,无论单机还是网游,需要涉猎的面很广,观今天很多经典的数值模型,大多来自单机的;后者指从事数值计算工作的经验,同样是A的x次方,A的2次方的曲线和A的3次方的曲线可能不少人还能轻易感觉出来,A5和A2(A3+3A),其中的微妙差别就要靠经验才能洞察出来了,对于很多蹩脚的公式或者不合理的数值设定,很多时候对公式调整一两个参数即可修正到很好的效果,而另外,如果C是由A和B共同推出的,当C出问题的时候究竟调整A好还是调整B好,这也是十分需要经验的地方。
4. 数值计算流程案例
以下从一个系统相对简单的游戏来简单说一下数值计算的流程,初版的征服是笔者开始研究分析的第一个数值模型,其结构简单却基本系统完善,下文以该游戏作为数值计算流程的分析案例。
http://school.ogdev.net/upload/img/5232617921.gif
4.1. 主要系统细化
如上图所示,系统案的细化是做在数值计算之前,而职业、技能、装备、物品、战斗五大系统则是数值计算中不可或缺的五个最主要的指导中心。
职业系统。决定游戏中职业的数量和职业的特色,这两方面决定了整个技能系统,决定了战斗系统中的玩法,也决定了各个职业的主属性的成长比例。
技能系统。技能对战斗系统是一个修正的作用,数值计算的目的是要做到数值平衡,而由于技能的加入,技能的平衡也变得首当其冲,而与此同时还要注意技能和职业配合后的平衡、技能在PvP中的职业平衡。
装备系统。装备系统是基于职业系统而产生的,由于有了不同的职业及其职业特色,于是有了适合不同职业的武器和不同职业穿戴的防具和饰品。由职业系统衍生出来的装备系统,在数值计算中的经济系统的计算,起到了很重要的作用,包括PvM、装备耐久耗损、装备价格、怪物掉落等等。
物品系统。由装备系统衍生出物品系统,或者一定程度上说,物品系统也可以自我产生的。物品系统在数值计算中主要指药品,由于装备和玩家本属性带来的攻防,导致不同职业的药品消耗程度不同、回城速度不同,进而影响到数值计算中的药品价格、升级消耗、怪物掉落等数据。
战斗系统。游戏中数值计算最重要的参考系统,战斗系统为物理攻击和技能攻击设计战斗伤害的计算,而这个计算的流程和计算的公式,则是数值计算中的核心环节和主要依据。其次,战斗系统的设计也决定了主属性与辅助属性的换算关系。
4.2. 初期感觉设定
在数值计算启动之前,需要做的另一件准备工作是对游戏的初期感觉进行设定。最初需要设定的五个基本感觉为:角色的成长曲线、角色的经验曲线、游戏花费时长、各职业属性比例和属性校正参数。
角色成长曲线。成长曲线是设计师给玩家的一种游戏感觉,同时也很大程度上烘托了游戏的世界观,角色到底是大器晚成型还是逐步成长型,还是像方仲永式的先快后慢型,这几种不同的角色成长曲线决定了真正的数值计算中各项数值随着等级和时间的增长速度和程度。
角色经验曲线。经验曲线也是设计师给玩家的一种游戏感觉,其影响的主要是玩家的升级速度和升级感觉,以征服为例,它是一种五级一阶梯的经验曲线,如下图所示:
http://school.ogdev.net/upload/img/5239623946.gif
通过经验曲线的确定,数值计算中以此为依据,确定游戏的每个等级的升级时间、杀怪时间、回城频率等时间相关的数据,而这些时间相关的数据,都是以初期定下的角色经验曲线为参照的。
游戏花费时长。游戏花费时长是另一个用于确定时间相关类数据的初期感觉数据,通过游戏花费时长的确定,配合游戏的角色经验曲线,可以界定出角色每级升级所需要的时间,从而通过这个升级时间可以推导出游戏的其他时间数据。
各职业属性比例。由职业系统的细化可以得到各职业的特征,这些特征主要为两样:职业属性比例和职业技能。前者是数值计算前期对角色属性数据推导的主要依据,而后者在数值计算设计到技能的时候开始产生主要的参照作用。以勇士为例,当确定了勇士的力:敏:体:魔=5:2:3:0的时候,可以通过数值计算求出勇士每级的基本数值和装备后的相关数值,而后可以通过这些数据推导出怪物的相关属性数据,从而推导出以后的数据。
属性校正参数。通过以上的初期感觉设定可以通过数值计算推出游戏中的主属性数据,然而游戏中有更多的辅助属性数据,比方说命中闪避血值魔法值,这些数据的推导需要初期定下的一些属性校正参数(例如一点体质换算多少点血值),推导出了辅助数据,才能对其他的数据进行进一步的推导。
4.3. 数值计算流程
当主要系统细化完成、初期主要的感觉也设定完毕之时,可以着手开始数值计算的工作了,针对数值计算最高层的看的角度不同,其流程也有所不同,但是实际上他们说的是同一回事的,以下按两种不同的角度去描述数值计算的流程,再配合一个实例讲解一下前期的数值推导。
http://school.ogdev.net/upload/img/5246846534.gif
上图为数值计算的其中一种角度上看的推导流程,正如前文所说,系统的细化和初期定下的感觉是数值计算的输入,在真正的数值计算过程中,可以分为三步来推导:时间类数据、属性类数据和校正类数据。
时间类数据
时间类数据指的是和时间相关的数据,这些数据玩家是看不到的,也是很难算出准确的数值的,因为这些数据算是从初期定下的感觉数据中经过一次加工的感觉数据;
时间类数据包括每级的升级所需时长、每级玩家杀死怪物所需的时间、每级怪物杀死玩家所需的时间、玩家的回城频率、玩家的寻怪时间等等;
时间类的数据为后面两步的数据提供了最重要的时间属性,这些属性用于计算角色的数值、怪物的数值以及经济系统有很大的作用;
属性类数据
属性类数据指的是角色的属性、怪物的属性以及物品装备的属性;
属性类数据包括不同职业的主属性、怪物的主属性以及物品装备的属性、价格;
这些属性类的数据其实都是由时间数据来推导出来的,比方说由角色的血值、怪物的攻击力以及怪物杀死玩家的时间,可以计算出玩家的防御值,同理,也能用玩家的攻击和玩家杀死怪物所需时间算出怪物的血值;
校正类数据
这些数据往往用于校正前面的一些属性类数据的计算结果,为了数值平衡而计算出来的用于调整的数据;
校正类数据包括技能数据、命中闪避数据、怪物掉落数据等等;
推导校正类数据的同时,会使用校正类数据进一步推导一些属性类数据,而后再推导出相关的校正类数据,两者是一个互相推导互相验证的过程。
以下是从另一个角度看数值计算的流程:
http://school.ogdev.net/upload/img/5250892236.gif
从另一个角度上看,实际上数值计算的过程是先通过细化的系统和初期定下的感觉先定下一个主要职业的属性,而后通过这个主要职业的属性来推出其他职业的属性。计算出各职业的属性数据以后,通过这些数据和时间数据来计算出怪物的属性数据。最后通过各职业的属性数据和怪物属性数据,计算出装备的属性数据和物品的属性数据,并用这两者相互验证。
这种角度上的数值计算实际上和前一种的计算方法本质上是一样的,只是划分的方式和看问题的角度有所不同而已。
以下以征服的数值计算为例,谈谈前期的数值计算是怎么界定和怎么开展下去的。
4.4. 数值计算前期案例
以下的例子谈谈征服的初版的前期数值计算是怎么界定和怎么开展的,之所以以初版为例是因为初版没有太多其他复杂的系统加入(比方说等级藐视系统、技能系统、XP系统等等)。
征服界定四个职业,而经验曲线如同前面图例所示,为5级的阶梯式增长曲线,成长曲线为逐步成长型的曲线。
数值计算最前期最关键的一步是定下每级升级所需的时长,以征服而言,在前期定下了从1级练级到顶级大概需要消耗玩家720个小时,然后用这个时间算出一条自然成长的经验曲线——征服采用的是最简单的方法,用等比数列求和公式求出公比,而后用公比和首项求出各级的自然成长的升级耗时。随后把每级的升级耗时转化为5级阶梯式的升级耗时,这样就完成了最初期的升级时间计算了。
大概流程如下图所示:
http://school.ogdev.net/upload/img/52568107801.gif
与此同时可以开始先算出一个职业的主属性数据和部分副属性数据了,在征服里面是先算勇士职业的数据的,根据职业设定的力:敏:体:魔=5:2:3:0的设定,以及初期界定的各职业初始属性点数和每级升级获得点数,可以得出勇士各等级的四项主属性的数据,而后通过初期感觉定下的属性校正参数可以得出勇士的血值、命中和敏捷。
正如前文所说,职业属性数据计算出来以后可以开始计算怪物的属性数据了,通过勇士数据的计算,可以计算出怪物的攻防,再利用勇士和怪物杀死对方所需要的时间可以分别计算出各自的其他数据,例如勇士的防御、怪物的血值。
当怪物的基本属性基本计算完毕的时候,用这些数据重新校正勇士职业的数据,校正无误以后就可以用勇士的数据推导出其他职业的数据了。
大概的流程如下图所示:
http://school.ogdev.net/upload/img/5261613136.gif
接下来,通过各职业的属性数据和怪物的属性数据,通过战斗系统的设定共同计算出装备的属性数据。比方说通过怪物杀死角色的时间计算出角色需要具备的防御,通过这个防御值和角色本身的防御值计算出防具所带来的防御值。
而另一方面,通过初定的玩家的回城时间、背包的大小和每级升级过程中怪物对玩家的累积伤害计算出当级血瓶的补血量,而后通过初定的单位血的单价计算出每级血瓶的价格,通过初定的血价和装备价的比值求出每级装备的总价值,而后通过不同装备之间初定的价格比求出每级的不同装备的价格。
在耐久相关计算上,通过角色杀死怪物所需时间、角色当级升级所需时间以及命中闪避等数据来计算出当级升级所需要的攻击次数和受击次数,从而计算出每次换武器防具前的这个求和数值,通过这两组数据推算出武器防具的耐久,而后通过相应的武器防具的价格算出其修理费用。
通过每级所需的血瓶费用、更换装备所需费用和修理装备所需费用,可以推算出当级怪物所需掉落的总价值,从而推算出掉落几率、掉落种类和掉落价值量。
由于该过程相关太多,基本上涉及整个数值计算的网络了,因此这个过程的概括图这里就不示意出来了。
最后,开始校正类数据的计算,计算技能相关的数据来调整战斗系统的平衡度,校正怪物掉落和耐久相关数据来调整经济系统。完成了大部分的数据的计算以后,同时也开始重新走一次流程或者用已有的计算出来的数据重新验证前面的数据,以达到二次校正的目的。
当这些都基本完成以后,就可以把数据填写入数据库里面,进行外部测试来对数据进行再次验证和调整了。
5. 卷末语
以上的征服的数值计算流程只是一个简单的例子,其系统结构和数值的逻辑关系非常直白,而战斗系统的计算公式和其他辅助数据的推导公式也异常的简单,因此以上的流程只能算是一个入门的教程。
数值计算的技术和经验并不是短时间就能完全掌握并且熟练的事情,建议专门从事数值计算的人员先从简单的游戏的数值计算模型开始学起(比如征服初版),而后开始对一些经典且数值精良的游戏的数值模型进行研究和学习(比方说笔者前段时间在研究的Diablo数值和RO数值)。
当然,数值人员的基础数学能力也要不断的锻炼,从高中数学开始重温,进而到高等数学、概率统计和离散数学,另外,对Excel表格的熟练掌握以及Excel中函数与公式的掌握也是十分重要的,应作为数值人员的基本能力考核条件。
望本文档能以一敲门砖的方式助读者敲开数值计算的大门。
页:
[1]