
英雄联盟数值方案分析.docx
3页英雄联盟数值策划方案分析数值设计,前期最关键的不是如何去平衡那些数值,而是要思考如何设计整体的数值架构,才能更好地对游戏进行宏观及微观的控制在目前没有任何该方面的策划经验的情况下,选择一款游戏来做分析,以此来让自己熟悉这个岗位上的一些工作在设计一个游戏之前,等级是要必须先假想好的,作为一个 DOTA 类的竞技游戏,英雄联盟的帐号等级设置成 30 级,30 级后才是这个游戏的真正开始经验无论什么网络游戏,都离不开升级这一环节,所以我从等级经验这一块开始分析英雄联盟的帐号等级为 30 级满级,游戏内的英雄为 18 级满级我们从等级表的数据可以发现,帐号等级划分为 4 个阶段,为别是 1~5 级、6~10 级、 11~20 级、21~30 级其中 1~5级和 21~30 级这两个阶段的数据,并不是完全的等差,因此使用 matlab 软件的 cftool 进行拟合,并得出这两个阶段的方程:2~5 级各等级升级所需 EXP:Linear model Poly1:f(x) = p1*x + p2 1≤x≤5Coefficients (with 95% confidence bounds):p1 = 7.6 (6.992, 8.208)p2 = 74.9 (72.66, 77.14)Goodness of fit:SSE: 0.2R-square: 0.9993Adjusted R-square: 0.999RMSE: 0.316221~30 级各等级升级所需 EXP:Linear model Poly1:f(x) = p1*x + p2 21≤x≤30Coefficients (with 95% confidence bounds):p1 = 68.76 (68.68, 68.84)p2 = 687.4 (685.4, 689.4)Goodness of fit:SSE: 0.7515R-square: 1Adjusted R-square: 1RMSE: 0.3065而对于另外两个阶段的等级,我们可以判断出是等差的,所以可以轻松得到下列方程式:6~10 级各等级升级所需 EXP:f(x)=28*x+280 6≤x≤1011~20 级各等级升级所需 EXP:f(x)=50*x+500 11≤x≤20虽然练级不是英雄联盟的主要任务,但是相信研发人员也希望从 1 级练到 30 级,是一个合理的时间。
在过去两天的测试里面,发现在游戏结束后所获得的经验,只与胜负、帐号等级、时间长短有关,经测试,得知获得 EXP 的公式应该是分段函数,并且应该与上面的 4 个阶段是同一阶段的因为时间与帐号等级的因素,因此现在只得到了 11~20 级这个阶段的 EXP 公式,大概为 EXP=3*min+25在游戏中,英雄的最高等级为 18 级,我们可以从等级表中看到,每一等级之间相差110 点经验,于是我们很快地得到了这样的一条公式:每个英雄等级升级所需 EXP=f(x)=110*x+60 2≤x≤18游戏里面,在前期,兵线上会出现 3 种小兵,分别是近战兵、远程兵、炮兵,这三种兵的初始经验值分别为 59、29、92在超级士兵没有出来前,游戏内的英雄等级一般都已经升到 18 级,所以此时计算升级到 18 级,不考虑超级士兵对于小兵的成长信息的公式,先不作计算战兵和远程兵每 30 秒就刷新一波,并且在游戏进行到第 3 分钟的时候,成长一次,之后就是每 3 分钟成长一次,而炮兵要在游戏进行到 2:30 的时候,才刷新出来,之后就是每 1 分 30 秒刷新一次,但是在游戏进行到 30 分钟之后,就改为 60 秒刷新一次。
而且超级士兵只能在摧毁水晶之后才刷新出来通过等级表可以查询到英雄到达 18 级一共所需经验为 19720 点,假设一个英雄单路的情况下,只靠小兵的经验,在游戏进行到 24 分钟时候,积累了 17346 经验,也就是说,在第 27 分钟小兵成长之前,就可以达到 18 级如果在有击杀敌方英雄的情况下,就可以提前到达 18 级,然而如果 2 个英雄在一条路的时候,就会慢些了通过对 2 英雄一路经验值经验表与小兵经验表的数值计算与分析,对于 2 英雄分享小兵经验,英雄联盟所采取的策略是增加小兵 20%的经验,然后 2 个英雄平分但是在野区的怪物,经过测试,发现并没有增加 20%的经验,而是直接在原来的基础上,2 个英雄平分金币游戏金币,也是任何网络游戏都通用的一个词,在英雄联盟里面,分为 2 种,一种是帐号金币,简称为 IP,另外一种就是游戏里面刷怪、击杀敌方所获得的金币先着手分析帐号金币的计算公式在刚开始的时候,把影响 IP 和 EXP 的因素,扩展到非常之大,例如击杀数、助攻数、小兵数、推塔数等,后来经验测试发现,影响 EXP 的只有胜负、帐号等级、时间长短,而影响 IP 的更少,只有胜负与游戏时间长短。
英雄联盟在使用匹配获胜后,会额外增加 18 点 IP,失败则只有 16 点 IP,如果在人机的情况下,则受到等级的制约,等级越高,扣除的奖励也就越厉害通过胜利获得 IP 表我们发现,当游戏时间进行到 55 分钟之后,奖励的 IP 就不会再增加而在失败获得 IP 表可以发现,在 25 分钟之前输掉比赛,所得到的金币和 25 分钟时候的一样,26 分钟之后的才会有增加直接通过 excel 的图表功能,对这两个表进行作散点图,并添加趋势线,可以得出胜利之后获得的 IP 大概等于 2.3*min,而失败的则为 1.4*min我们分别把两个表中获得的 IP除于游戏时间,得到的数个值,并分别使用 average 函数进行求平均值,得到胜利时的一个系数为 2.31,而失败时的系数为 1.41,在粗略的计算中,这两个系数确实完全符合要求,因此我们假设胜利后获得的 IP=2.31*min(在 55 分钟内) ,失败后获得的 IP=1.41*min (在25 分钟之后,至于 55 分钟之后还会不会增长,下次再找机会测试) 另外在游戏里面的一个金币的获得,有多种途径,除了补刀、击杀、助攻、推塔、购买工资装,还有系统每 1 分钟赠送玩家 86 金币,也就是每秒增加 1.433 金币。
在游戏中,补刀小兵所获得的金币,会随着时间的而增加,分别会在游戏进行到第 3 分钟、7 分 30 秒、10 分钟、15 分钟、20 分钟、27 分钟增加 1 金币,而炮兵还会在后续时间增加多 2 金币通过计算,如果一个玩家补刀非常厉害,将可以在游戏进行到 8 分 30 秒前,补刀超过1650 的金币,可以从商店里面购买第一把大件武器伤害在网络游戏里面,对于伤害公式,也是许多玩家喜欢探讨的一个问题在英雄联盟里面,英雄的物理攻击力或者法术强度,可以直接查看,一般由基础值+成长值+装备加成+状态加成构成,在这里也不需要过多地分析探讨,更要注意的是防御公式,英雄联盟里面的防御采取了百分比的形式,就意味着伤害公式是乘法通过测试,我们得到一系列的防御加成数据,建立防御加成表,再次使用 matlab 软件里面的 cftool 拟合得到以下的结果:物理防御:General model Rat11:f(x) = (p1*x + p2) / (x + q1)Coefficients (with 95% confidence bounds):p1 = 99.69 (98.38, 101)p2 = 32.09 (-70.18, 134.4)q1 = 100.6 (95.65, 105.6)Goodness of fit:SSE: 1.11R-square: 0.9998Adjusted R-square: 0.9998RMSE: 0.2816魔法防御:General model Rat11:f(x) = (p1*x + p2) / (x + q1)Coefficients (with 95% confidence bounds):p1 = 100.7 (99.42, 102)p2 = 156.1 (-12.1, 324.4)q1 = 105.5 (98.59, 112.3)Goodness of fit:SSE: 5.611R-square: 0.9996Adjusted R-square: 0.9995RMSE: 0.4646然而,通过网上查找资料,发现英雄联盟里面的防御公式是减伤=(防御值/(防御值+100))*100%。
通过 matlab 软件的 cftool 拟合出来的公式,也符合当前数据的要求我想造成不能得出最接近原公式的原因应该是有三点:A、 数据太少,不够平均分布B、 对图像的曲线的判断不够准确,以致没有选择正确的拟合函数C、 对 matlab 软件的使用没有正确选择工具所以在后续的测试分析中,要加强对数据的测试经测试,可以得出英雄联盟的伤害公式大致上为:实际护甲减伤=(护甲值-护甲削弱-护甲穿透)/[100+(护甲值-护甲削弱-护甲穿透)]*100%实际抗性减伤=(抗性值-法术削弱-法术穿透)/[100+(抗性值-法术削弱-法术穿透)]*100%平攻实际伤害=物理基础攻击力*(1-实际护甲减伤)*2(暴击伤害)+真实伤害物理技能伤害=(技能基础伤害+AP+AD 加成)* (1-实际护甲减伤)*2(暴击伤害)+真实伤害魔法技能伤害=(技能基础伤害+AP+AD 加成)* (1-实际抗性减伤)*2(暴击伤害)+真实伤害备注:部分装备会使暴击变为 2.5 倍,部分技能存在暴击的情况。
