如何建立数值模型.docx
《如何建立数值模型.docx》由会员分享,可在线阅读,更多相关《如何建立数值模型.docx(17页珍藏版)》请在冰点文库上搜索。
如何建立数值模型
如何建立数值模型
如何建立数值模型?
数值需求模型
需求分两种,设定需求和数值需求
一,设定需求
设定需求的意思,就是一个设定,需要怎样的数值,或者,怎样的数值才是符合设定,达到设定的目的;
[举例]设定收费道具“双倍药”的价格。
[分析]你需要考虑一些因素,在符合游戏大前提的基础上,通过计算就可以得到。
符合游戏环境就是需求,较为隐性。
[解答]首先需要确定哪些因素会影响:
1、普通状态下单位时间内的收益S1,以经验为例
2、使用双倍药之后,单位时间内的收益,简单一点,以2倍于普通状态下考虑S2=2S1
3、同等收益在普通状态下引起的消耗,主要考虑游戏币消耗(M,每1点经验对应的消耗)
4、游戏币与现实货币的兑换比例(N,1RMB对应的游戏币)
5、调整参数a,主要受影响于该道具的定位。
消耗品,一般a<1;一次性用品a>1
那么,价格P=a*(S2-S1)*M/N
注:
游戏币与现实货币的兑换比例是一个相对难定的值,牵涉到游戏经济的控制。
由此可以看出,经济稳定的游戏,对收费道具的销售有重大影响。
二、数值需求
这种需求一般出现在纯数值需求的设定中。
[举例]设定升级经验。
[分析]这个问题解决的前提条件,是你要能对以下内容做出预期:
1、总需时预期;S;如2年;
2、单位时间经验获得值;E
3、玩家预期每天在线时间;多采用8小时;t
如何制定?
这就是一个项目的定位问题,一般由主策给出。
[解答]考虑到所有因素:
1、总需时预期;S
2、各级需时预期;s
3、单位时间经验获得值;E
4、玩家预期每天在线时间;多采用8小时;t
5、游戏设定中,获得经验时间占在线时间的比例。
泡菜为1;多线发展游戏,如梦幻、问道为0.6左右;
6、游戏寿命预期Y;该项不参与直接计算,但会影响总需时预期S。
例如果设定寿命为2年,那么S就是2年~3年。
那么,升级总经验T=t*E*S
看起来有点太简单了,不过这只是第一步。
现在要做的是每级所需经验。
一般来说,每级升级所需=s*E。
各级所需时间s常规的模式就是2次、3次、4次曲线,如:
f(x)=ax^2+bx+c。
a,b,c是系数。
显然,所有等级的经验就是∑(s*E)。
但是,经常会遇到一个问题,就是∑(s*E)!
=T,中间会有偏差。
因为∑(s*E)是以f(x)值为数列的和。
那么,∑(s*E)的导数必然也是N次幂曲线。
故,通过调整参数a,b,c即可达到消除偏差的目的。
数值定位暨模型基准
定位是决定数值做成什么样的第一步要素。
很常说的例子,我的攻击都是千位数的,但最多不会突破万位;战士高防高血单体伤害,法师低防底血高单体高群体伤害;玩家必须将装备提升到一点程度(史诗级,--!
)才可以去打XX副本。
等等……
这就是本篇主题:
定位。
[举例]游戏需要增加套装。
给我搞定属性数值部分。
[分析]首先,套装的定位是什么?
主策可能会给你,也有可能让你自己定。
这里假设装备分4等,白、蓝、套、紫。
即,游戏中已经有白和蓝了,现在要添加套装。
然后,我们需要考虑这些东西即可:
1、增强幅度(概念性质)
2、是否有新属性?
如果有,如何考虑新属性的价值问题?
3、获得套装前,必须的消耗预估,以及代价是否与性能提升相匹配
4、能不能吸引玩家?
(根本定位,这个完了,其他都白搭)
在第4能保障的前提下:
第1:
是个预期值,直觉成分占大多。
第2:
假设有。
问题1:
新属性的设计和价值衡量。
第3:
根据提升,来计算消耗。
其参考标准为人物标准模型(注1)。
STEP1:
设计新属性。
以及价值衡量。
新属性:
攻击时有X%的几率下个技能瞬发。
假设提升1点智利,可以提升1点伤害。
顺发的技能可以造成100点基础伤害,该等级玩家标准智利50点。
那么该技能在该等级的标准伤害为150。
在拥有新属性后,该技能的伤害会提升到150+x%*150。
而此时,该等级的装备,增加智利的标准值为5点。
(如衣服+5智+5耐之类),那么理论上:
x%*150=5。
STEP2:
性能提升是否匹配。
又假设,该条新属性,需要穿齐N件装备才能激活。
那么实际上,理论计算数值,是与获得代价不匹配的。
需要对x进行系数调整。
x=x*a(a>1)。
如何调整,经验占很重要的成分。
同时也需要反馈信息。
STEP3:
确定得到套装的消耗。
该步骤对一些收费道具游戏比较突出。
例如每做一件装备需要XX水晶、XX矿石之类。
所谓消耗就是指的这些东西了。
说实话,这种方式大都没有严格计算加强,都是以直觉、经验来做。
这里说纯游戏利益的消耗。
1、金钱
2、材料
3、时间(点卡)
例如WOW,你每天下副本,你要付出修理费(可预估)
金钱:
你每天下副本,你要付出修理费(可预估)
材料:
你每天下副本,你要吃各种DPS药、吸收药、大红大蓝
时间:
1周7天,1天5小时,1小时8毛……
每次副本可以掉落20件装备,每人可以分到0.5件装备。
1件装备的价格,就非常明显了。
第3步主要是出于对难度衡量而做的侧面考量,对套装本身设计影响不是主要因素。
第1和第2步才是。
数值的兼容
首先要申明,兼容性,并不是对数值的必然要求。
是不是满足兼容性,其实是一个选择。
有或没有,没有绝对的对错,只有适合不适合。
兼容性,就是在不同的环境下,同一个数值设定是否通用、兼顾。
[举例]简单的例子。
1耐=X点生命值?
[分析]几乎所有游戏中,都有类似的问题。
可能大多数游戏选择了固定的1耐=10点生命值(例),但是这个选择/结论的背后是有过程的。
问题就是:
如果游戏中有N个职业,而彼此的生命值标准值又是不一样的。
此时是针对每个职业,都有1个X值?
还是使用同一X值,再调整其他方面来满足设定需求?
(注:
本期不讨论如何计算X)
者不要就具体数值评论,请参考上下文阅读中心思想)。
其实它想要满足的需求,无非是任何等级的玩家至少有5%的基础法术致命几率,而又控制法术致命在30%以内。
如果是换人来做这个地方,很可能做成5%+1%*(智力/60)。
但其中有什么区别,你可以在另外的章节:
扩展性中找到答案。
本篇虽然题为兼容性,但主要篇幅却体现在数值的“友好度”上。
一个优秀的数值,既要可以做出符合需求的数值,还要对数值进行抛光打磨,使得玩家可以容易接受。
因为数值,也存在上手难度(个人称之“手感”)的。
数值概念模型
概念模型,讲的就是概念阶段的模型。
一个火球可以打掉同级怪1/3血,法师的HP相当与战士的1/2等等……都是概念性质的模型。
回合制的模型简单明了,今天以此为例,来说说这个是什么玩意儿。
以及从概念转化开始,逐渐形成具体数据的方式和过程。
[举例]某回合制游戏的概念模型。
[分析]回合制游戏,战斗起来都非常高效。
战士一锤砍翻1个,法师一秒一群,都是其特色。
其基本的概念描述是:
平均需要3回合。
在1人、2人、3人、4人、5人……回合数应该基本一样;
[解答]先申明几个要素
**_std=**标准值
atk=攻击
hp=血量
def=防御
根据概念描述,可以得到:
(atk_std-def_std)*3=hp_std ——(*)
很显然,这个是无解的。
需要先确定其中的几个值才能得到其他的。
比如,从hp_std入手。
hp_std受以下几个因素影响:
体质点x、人物等级y、天赋z。
其中x占20%,y占60%,z占20%。
于是有:
hp_std=f(x,y,z)。
再从def_std入手。
def_std受以下几个因素影响:
体质点x、人物等级y、天赋z。
其中x占20%,y占60%,z占20%。
于是有:
def_std=g(x,y,z)。
又因为体质点、天赋跟随等级的提升而提升。
x_std=h(y);
z_std=j(y)。
那么,最终可以得到patk和matk都是只受等级y影响的。
即atk=F(y); ——①;
接下来要做修正分析。
atk受以下几个因素影响:
加点x、等级y、天赋z。
于是有:
patk_std=f`(x,y,z)。
——②
将①和②进行差异分析,在差异不大的情况下,进入下一步。
到这里,只是标准模型,也有称为初模的。
但是实际的游戏中,不可能都是这样的角色,假设我们需要群攻法术型、单攻物理型这两种角色。
而这样的角色可以将最初的概念模型修正为:
平均需要2回合。
在1人、2人、3人、4人、5人……回合数应该基本一样;
即:
物理攻击可以一击击杀标准怪物;法术攻击(目标数=3)2回合解决全部怪物。
(patk=物理攻击;matk=法术攻击;n为修正值。
)。
从而得到以下2个式子
patk-def=hp*n ——③
(matk-def)*3*2=hp*n ——④
n为修正值,当n<1时,称非标准物理攻击型角色;当n>=1时,称为标准物理攻击型角色。
同理可得法术型标准角色。
通过(*)和3、4式,可以得到patk、matk是标准攻击atk_std的函数。
即:
patk=G(atk_std);matk=H(atk_std)。
以上。
阅读说明;
1、文中所有函数均以表达式给出,并没实际内容,本篇的主题也不在于此,所以希望各位看官注意文章的内容重心。
2、为了简化说明以及精简篇幅,文中没有提到装备的影响。
因为这部分就是一个大坑,一挖下去就不是本文寥寥几字可以说的清楚的了。
例如在说到hp_std=f(x,y,z)。
只提到等级、加点、天赋的影响,并没有装备。
其最终的原理和方法都是一样的。
3、书写过程中尽量避免了所谓“专业”的词语。
尽量做到通俗易懂。
数值常规设定
本文是数值设定系列的第3篇(第4版),前篇讲述了数学建模的方法和起点;本文主要内容是一些常规内容的构建方法:
属性、技能、装备、怪物、任务;
Part1.基本属性
第一部分——人物基本属性所扮演的角色、常用构建方法和成长模式。
p1.1角色扮演
基本属性,特色就全在这个“基础”里面。
顾名思义,基本属性就是人物的一切属性的根本。
好比,攻击力、防御力是操作系统,技能是应用软件,而基本属性是底层汇编;
p1.2构建方法
作为最底层的计算模块,设计时遵循两个原则:
?
划分到最细;
?
以最简单的方式计算;
通常,我们除了基本属性外,还有在中间起作用的属性。
比如闪躲、致命等。
那么,我们需要构建的基本属性模块就是为这一层工作的。
将每一个基本属性划分到足够细、不能再划分,在进行内部联系(计算公式)构建时以简单曲线为主;
简单曲线通常指的是以下几种:
üf(x)=ax+b
üf(x)=a(x∈[m,n]);b(x∈[j,k])
üf(x)=ax(x∈[m,n]);=bx(x∈[j,k])
举几个简单的例子:
2致命几率=敏捷值/30;1点耐力=10点生命;
2火球术,需要30智力值才能学习;(二段常函数,0:
不能学和1:
能学);
260级前,猎人的致命几率=敏捷值/30;60级时,=10%+敏捷值/50;
2生克表:
p1.3成长模式
底层的计算满足的特点就是一目了然、易于控制;
这种成长模式可以实现的几种主要功能都是最基本的:
?
开关:
0/1;
?
分段、索引:
非连续型;
?
递增:
连续型;
最基本的功能往往是最经的起推敲和反复使用的;一切的关键在于两个基本原则,尤其是划分到最细的原则;
最细原则的重要性,在于牵涉到互相之间的联系,足够细致的划分才能整体与局部很好的结合。
我们也有看到一些将属性设定做的很复杂的例子,比如RO;RO在对属性的设定上显得极其复杂,尤其在攻击速度之类的设定上;因为RO的属性点控制的非常紧,所以在一些极限值的做法上,一直是一个非常好的案例,这是我们都应该学习的;而也正是因为这个原因,才使得在原本不多的玩法上,需要强化属性设定这一块;我想开发者在这部分是付出了极大的劳动和付出的。
如果你的游戏在其他方面并没有太大的黏着度,在属性设定上系统化一点并无不可,但是一定要尽力为之,不要做到后来自己都控制不住了,芝麻没捡到就丢了西瓜了。
Part2.技能
p2.1角色扮演
相对基本属性而言,技能模块的做法相对独立;具有独立的系统性和特色;有时会搀杂一些和其他模块如基本属性、装备,直接挂钩的做法,挂钩程度的不同形成往往形成不同的玩法;
p2.2构建方法
技能模块的构建方式可谓千变万化,这里仅以与其他模块的结合程度来做3个划分以分别阐述构建方法和特点;
?
完全独立
完全独立的技能模块通常都有复杂的内部脉络;否则会显得异常的突兀,有种为了存在而存在的感觉。
选择使用这种类型的技能模块一般出于“特色系统”的考虑。
一方面便于设计思路的整理,另一方面有比较大的发挥空间。
对于技能模块内部的构建方法,最基本的类型有:
ü宝塔型:
一层一层又一层;
ü金字塔型:
一层比一层精&进;
ü蛛网型:
低位均等,互相影响;
实际中,我们常常混合使用;比如D2的技能树;
?
部分交叉
使用这种方式主要出于以下几种考虑(可以发挥出的优点):
ü技能模块特色不足
ü借助其他模块的成长模式
ü以极具特色的技能模块带动其他
特色不足没什么好说的,自己想办法解决;
就其他2个方面举几个例子说明:
2职业—法师每升1级提升2点智力;而其初始技能冰箭术的伤害为:
智力值+10;
2职业—圣骑士技能树—圣光和惩罚,圣光系的技能效果以精神力为根本,而惩罚系的技能以武器造成近战伤害为根本;
?
完全依托
将成长模式完全交给其他模块。
这种情形之下的技能模块,是一个再创造和利用的过程。
如果依靠的模块划分比较混乱的话,那将是非常危险的事。
完全依托同样意味着牵一发而动全身;在构建这种类型的技能模块时,需要注意以下几点:
ü将成长的限制、极限条件等维持模块不走型的限制尽量放在依靠的模块上;以此来避免反复check_in&check_out时无法衡量的工作量;一切以可以保证控制之中为前提;
ü用到的任何公式都是维数+1的。
平衡也是。
同时需要指出的是,因为这种依托关系,往往很容易将某种“职业(类似概念)”限定在某个小圈内发展;即我们通常所说的:
“你不加这个怎么行,不加这个,那个就根本没用,那个没用,你这个职业不就是一废柴么…?
”对这个问题的看法见仁见智,完全看各自的需要了,并不完全是坏事/好事;
Part3.装备
p3.1角色扮演
用“人靠衣装”这句话来形容装备扮演的角色再适合不过了。
作者个人理解,这句话有三层意思:
ü人很不起眼,穿了衣服后,不同凡响;
ü衣很衬人;
ü人好,衣好,合在一起后,1+1=3了;
这代表了3种对装备的定位。
p3.2构建方法
仅以这三种定位来做分析:
ü人为装生:
代表做法是基本模型(如人物基本属性模型)的服务方向完全以服务装备为主,发挥出装备的能力为方向;
这种做法下的装备模型,更多是依据基本模型的处理方式来做配合搭建、扬长避短;具体情况具体分析。
ü衣很衬人:
代表做法是装备分为A、B、C等,属性分为L、M、N类,分类明确,指向清晰;
装备分类和装备属性的价值衡量是本做法的重点;
关于装备的分类,有很多种了,D&D是很好的教材;
关于装备属性的价值衡量,在Blizzard的游戏中一直有这个概念。
这是基本的数学换算概念。
对数据的统计分析,得到换算比的这个过程必不可少;纯粹数学意义上或许可以得到一些数据,不过失之偏颇是难免的。
ü平分秋色:
作者认为,这种做法的难点在于如何保持“平分”秋色。
(虽然这个问题一直存在)
固然,均等的或者是比例恒定的“1+1流”是很容易保持。
但是如果是f(x)和g(x)的话情况就比较复杂了。
因为牵涉到两个模块的效应衡量问题,作者也是所学有限,只能在大量的check_in&check_out中进行数据分析。
在同一个游戏,甚至同一个角色,在不同的时期,可能三种方式都会出现;这也并不矛盾;从三种典型做法的角度来看,并不是同一角度。
互相融合以后,可以取得更好的效果
p3.3成长模式
装备模型的成长模式都不是特别设立的。
因为一切都有一个参照物——“人”。
量体裁衣是这个模型处理时的金玉良言。
Part4.怪物
怪物这部分不打算再做分析了。
列在这里冲个数。
怪物要做到特色,数值方面再怎么发挥都有限。
AI才是正道。
怪为什么是怪?
人为什么是人?
AI区别啊!
Part5.任务
将这个列在这里的初衷是:
任务的数学量化。
作者暂时也没有什么好的想法,先欠着。
不过这个问题不像其他,考虑的不会那么细。
就目前而言,数学上衡量重复领取的那种任务还是不难的,-_-!
!
任务嘛,就我的执行策划经验看,体现世界观的价值要大的多。
嗯,送装备的任务也可以送的很巧妙的,你说是吧?
********************************结束的分割线********************************
作者在每个模块的分析中,都有进行一个划分,然后在各自的划分下有相应的问题提出和解决方法。
这里必须友情提出的一点是,列出的问题只象征性表示突出性。
所有的问题都是共通的。
比如在装备部分,只在“衣很衬人”部分说了分类,这并不表示其他情况下不需要、不可以做这种动作。
单独提出来是为了表示此时的重要性。
这个问题在所有部分都存在。
本篇用字相对节俭,如果您没有能立刻理解(其实除了我,没有一看就全懂的。
我也知道要与读者产生共鸣,但是如果读的人没有实际的操作经验,我看写得再通俗也很难产生共鸣;),最好再读,这样你才能挑刺以慰我在天之灵……阿弥陀佛。
本篇到此结束。
这是第4版,前3版各采用了不同的角度,最后决定拿这个出来。
是不是糟粕实在是顾不上了。
把自己的想法总结、归纳、表达,其实真的不是一件容易的事;之前看了叶丁叶展的那本书,还嗤之以鼻,现在发现,能写出那么多字来,其实也是一种能力啊!
!
优点果然是要慢慢发现的…
数学建模-游戏设计的起点
本篇是数值设定相关文稿的第2篇,前篇第一篇讲述的是计算公式的特点及应用。
在本篇中,你将了解到作者对游戏中的数学建模的方法和理论,以及实际案例。
本篇的主要内容为建模的起点和方法问题,并没有详细、深入,这部分的内容将留到后续章节。
以下是正文(以上是废话)。
*******************************你看不到的分割线*******************************
我认为:
一个模型必然由有限个模块组成,研究模块的特性是建模的起点;
一个模块具有五个特性:
生成、成长、消亡、变化和联系;这五个特性或多或少的存在于模块之中,影响着模块的最终形态。
?
生成:
这是一个开始,模块产生的原因、过程及一个描述。
模块的产生并非是YY出来的,势必是符合大前提的。
比如我们的世界观定义在了中国北宋年间,那么就不可能存在八旗子弟。
过程,讲述了一个模块生成经历。
有的时候,我们需要生成的东西已经是人所皆知的了,往往省略了这一部分,比如武侠,但很多时候是我们创造出来的,比如牛头人,我们需要详尽的描述这个生成的过程,他或者是符合逻辑的,或者是符合人类情感的。
“描述”指的是所生成的模块具有的特性,所影响的事物等;
?
成长:
成长是人类的一种基本情感,一成不变的事物很难得到人的认同,而实际上,万事万物也是在成长的(当然,也在消亡,见下)。
这是我将其纳入到模块的特性中的原因。
这个特性用来描述模块从起始一步一步成长的轨迹,缓慢还是快速,平稳还是跳跃,……
?
消亡:
包含两层含义,消失和灭亡。
消失,是成长的反义词,一个负成长的模块就是在消失,一个成长环境中的不成长模块,也是在消失。
而灭亡是消失可能走到的尽头。
比如大家都最容易等级的增加,属性的增加就是增长的例子,而就属性的增加而言,并不是所有属性都在增加的。
又如某游戏有10个职业,但是80%的玩家都选择了其中3个职业,这就是另外7职业的一种消亡。
消亡不一定就是坏事。
?
变化:
简单的说,就是模块并不总是朝着一个方向成长,而且成长的过程中会受到很多的影响。
这个我想大家都很容易理解,求新求变是变革的根本动力,变化才是永恒的生机。
?
联系:
模块之间的联系,这是模块可以组成模型的最根本因素。
建联系就像织网一样,你想网住多少鱼才会用到什么样的网。
以上就是我在建模时考虑到的五个方面。
到这里为止,没有提到“起点”的问题,下面就以几个常用的起点来就五个方面进行实例阐述。
********************************又见分割线*****************************
起点1:
背景、种族
在很久很久以前,在某某大陆上,种族A和种族B时战时停,时好时坏,几百年的历史中,使得各自的版图基本明确了;但A族的阴谋家X为了得到无上的力量,不惜出卖灵魂来研习黑暗魔法,以获得与异界联系的能力,并与恶魔订立了黑暗协议,只要能让X得到他想要的力量,这个大陆上的一切都可以被恶魔拥有。
终于,在牺牲了99999个人的灵魂之后,打开了异界的传送门,恶魔开始了入侵计划;
恶魔派出了几个猛男带领着他们的奴隶——种族C通过传送门进入了这个大陆。
种族C被不断的派往前线,鲜血、牺牲、**、暴力充斥着种族C的灵魂,直到有一天,一个被**了A族女人生产了一个混血儿——C族的混血。
A族社会被震惊了,所有人都要求烧死这个孩子,因为他的恶魔血液家给A族带来不幸,女人也被所有人唾弃。
伟大的母性使得这个母亲带着自己的孩子逃离了家乡,来到了B族的领地,这里的人们对异种族的并不排斥。
孩子长大成“人”Y,受到教育,也了解到了自己的由来以及种族之间的关系。
一个伟大的领袖产生了……
艰苦卓绝的战斗开始了……(省略N字,需要很细的情节文字)
终于Y带领着脱离恶魔控制的C族和A族、B族共同击退了恶魔,大陆进入了新的篇章……
成长部分结束。
生成部分:
种族A:
人类社会,数量众多,形形色色,对外族持有戒心(实际上彼此之间也不是完全信任),君主统治,君主有着生杀大权,贵族对平民的欺诈和压迫,重视血统。
身材中等,男性明显强壮于女性。
种族B:
杂居人群,严格意义上不能称为一个种族,因为没有明确的血统。
主要人群有脱离贵族控制的人类,妖精,混血人群(人妖^_^)。
社会中小团体现象明显,人们往往只对一个生活圈中的人群表示认可和交往,一旦彼此得到信任,将是至死不愉的友情。
没有明显的阶层划分,过着自给自足的生活。
种族C:
异界的种族,相貌丑陋,体形魁梧,皮肤深棕色,眼睛天蓝。
面部器官较人类更为突出、明显。
身高与人类相仿,但体重为1.5到2倍。
多为男性。
脱离控制后,形成母系社会,女性地位很高。
智商较其他种族偏低,因为曾受到恶魔的洗脑。
虽然已经脱离了恶魔的控制,但是对种族A和种族B的伤害使得无法得到谅解,被认为是“潜伏的恶魔”,所以居住地远离人类,过着近乎原始的生活。
种族D:
神秘的种族,在种族A和种族B的几千年历史中从没有出现过,在恶魔将种族A和种族B逼到无退路的时候,以神一般的形态出现的种族。
详情参见背景故事。
这是一个生活在地底的种族,普遍身材矮小,只有人类一半大小,但相貌、身材比例颇与人类近似,犹为突出是相貌都很精致,被人类成为“上帝的艺术品”。
在战争结束后,人类才慢慢从使节了解到一些种族D的历史……一个高智商的种族,科技发达,魔法发达。
消亡:
本部分搀杂在背