51Testing软件测试论坛
标题:
一个简单的角色属性成长系统范例
[打印本页]
作者:
51testing
时间:
2008-1-9 12:06
标题:
一个简单的角色属性成长系统范例
首先声明,这是一个精简的、理想化的、带有个人
BT
主义的、随手性极强的、绝对
YY
产物的数值系统,在不考虑过多过复杂诉求的情况下产生,因此在严格诉求时应当会产生差异,请观者在这个基本原则下观看,欢迎讨论。
诉求:
这是一个宠物战斗系统中宠物的平衡(口袋妖怪!?),宠物强度被分为四级——
A
、
B
、
C
、
D
,并且其强度为
A>B>C>D
,假设宠物有三个基本属性,每个属性的上限为
100
,于是我们将宠物的强度简单的归结于总属性点的差异(在这里问为什么的请重新阅读第一自然段
>_<
),宠物等级上限为
50
级。
设计:
根据诉求不难看出,如果
A
级宠物最强,则
A
级宠物的总属性点数应当小于等于
300
,我们在这里假设等于
300
,则
B
、
C
、
D
级宠物都应当不足于
300
。
根据诉求中“将宠物的强度简单的归结于总属性点的差异”一句话,我们得到了下边这条数轴:
轴.jpg
(21.76 KB)
2007-10-30 10:46
如上图所示,轴的方向代表了能力的增长,四个点代表了四个等级宠物的能力,下面,我要开始无耻的偷换概念,假设各种宠物每次成长量是相同的,那么各等级宠物能力的差异就要归结于宠物的等级。我们知道所有宠物的等级上限为
50
级,于是,我们以一个
D
级宠物的眼睛来看世界,
D
级宠物
50
级以后不能升级了,
C
级宠物的属性点比它多,于是可怜的
D
级宠物觉得
C
级宠物是一个
55
级的宠物,同样在它的眼中
B
级宠物是一个
60
级的宠物,而
A
级宠物那么多的属性点显然就是
65
级的嘛
>_<
。(有人没看懂的话请这样思考,假设所有宠物的成长状况都是一样的,那么为什么
A
级宠物最终的属性点为什么比
D
级宠物多呢?这里请先抛弃上限
50
级,我们先讨论好各位宠物之间的差异后再把他们变回
50
级。)
Oh yeah
!偷换概念后我们觉得世界好美妙,
A
级宠物当做
65
级看的话,我们有了一个数字
300/65=X=4.615
。这是什么东西?请注意我们偷换概念时的前提,假设各种宠物每次成长量是相同的,这意味着我们可以算出
B
、
C
、
D
三个点分别代表什么数字了。
B=300-5x=277
C=300-10x=254
D=300-15x=231
这三个数就代表了
B
、
C
、
D
级宠物总属性上限了。下面开始把它们压回
50
级,并且在这个过程中加入某
BT
策划的
BT
诉求。
某
BT
策划的
BT
诉求:
四个等级的怪物如果都以相同的规律去成长那就没人玩
C
、
D
级宠物了,我不能歧视它们,所以我决定,它们要是早熟型的,前期能力成长之快让人觉得它们才是最强的,而
A
、
B
级宠物要是晚熟型的,前期入手时大家就觉得它们是垃圾,只有坚持把它们练起来才觉得它们厉害!
设计:
好了,明确了这个
BT
诉求以后,我们有了设计的目标,下面开始干活!
中学解析几何给我们讲解了一条非常实用的曲线:
aX
∧
2+bX+c=Y
,我用它来表现宠物的成长状况,那么晚熟型宠物的成长曲线应当是
a>0
时第一象限内的曲线,而早熟型处理比较麻烦点,应当是
a<0
时将第四象限的曲线部分移动至第一象限。
先来晚熟,这个比较简单一点。
A
级宠物,在
X=50
时,
Y=300
,也就是说它经过(
50
,
300
)这个点,其他的随意。需要注意的一点是:宠物的级别是从
1
开始的,而这个坐标轴(
0
,
0
)点开始的,也就是说,我们连为宠物设计初始属性都省了,
X=1
时的
Y
值就是初始属性了(我承认我是懒人)。于是:
2500a+50b =300
两个未知数怎么解决捏?别问我,根据个人偏好去设计,具有很大的随意性,为了让
A
级宠物在早期就是垃圾一只,我选择了一个好玩的点:(
30
,
100
),也就是说,在
30
级时,
A
级宠物只成长了
1/3
,于是生成了一个二元一次方程:
2500a+50b=300
……
(1)
900a+30b=100
……(
2
)
得出
2/15X
∧
2-2/3X=Y
这东西对计算机难了点(我一向认为计算机是白痴),具体情况可以再作修改,我就是给大家一个例子,其他几个级别宠物的大家自己思考
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2