前言:
此刻咱们对“卡牌类游戏算法有哪些类型”大约比较珍视,大家都需要知道一些“卡牌类游戏算法有哪些类型”的相关知识。那么小编在网摘上网罗了一些有关“卡牌类游戏算法有哪些类型””的相关知识,希望看官们能喜欢,看官们快快来了解一下吧!文/ 灿洲
本文中的公式并不仅仅适用于回合制,也可以用在其他游戏类型,只不过我对回合制更加熟悉,因此以回合制举例。
1.确定伤害公式类型
说到伤害公式,只要是个游戏策划,多多少少都会有一些了解,而网上关于伤害公式的研究也非常多,这里只是简单说一下。
1.1减法公式
(攻击–防御)*系数
特征是公式中有攻击-防御这一项,主要代表作有《梦幻西游》《神武》《问道》,虽然是攻击-防御,但实际上有很多变种,其中最出名的就是《问道》,他的物伤和法伤算法非常复杂,涉及到五行相性,算是《问道》战斗的一大特色,《梦幻西游》跟《神武》则是在攻击-防御的基础上额外增加战斗系数,从而丰富战斗内容。
1.2除法公式
攻击/(攻击+防御)*系数
特征是公式中有攻击/(攻击+防御)这一项,主要代表作是《天龙八部》,但实际上《天龙八部》在这一项之后,还有很多系数算法。
1.3乘法公式
攻击*(1–免伤率)
特征是没有防御属性,或者有,但是变成免伤率的一个参数,主要代表作是《大话西游》,《大话西游》没有防御属性,以五行相克、抗性作为免伤率参数。
1.4采用哪种公式
事实上,国内的大部分游戏公式,采用哪种公式一般都不是数值策划或主策一句话说了算了,而是根据参考的游戏或者今后预备挖的坑来决定的,当然,一般都是在立项之初就定好,如果项目开始之后还要改伤害公式,那么这个项目的周期至少延长1-3个月。
1.5公式变种
但即便是有游戏参考,公式也不会是一成不变的,事实上,知道三大战斗公式的意义并不大,因为真正的游戏战斗公式受到很多方面的影响,比如属性加成、成长的扩展、付费点的预估等等,所以真正的战斗公式,一定是从上面1-2条公式进行变种而来的。以减法公式为例,最简单的,就可以将攻防拆分成物理和法术,然后分成两条公式:
(物理攻击-物理防御)*系数
(法术攻击-法术防御)*系数
当然,还有更简单的变种,比如卡牌MT,取消防御,直接变为攻击*系数,这也是近几年很多卡牌游戏的做法,因为摒弃复杂的公式运算,让战斗结果更直观是让玩家更快了解培养方向的一个好办法,那么这样一来就会少了一个属性?其实并不会,我们可以在系数上做文章,相比于防御、系数同时培养,不如专注系数来得直观,比如:
原公式:(A-B)*C
防御系数同时有培养:(A-(B+D))*(C+E)
只培养系数:(A-B)*(C+D+E)
而且由于有防御这个属性,上面的减法公式和除法公式很容易出现极端。
但是,并不是说防御属性就不好,因为有防御属性的存在,可以减少因系数失衡导致的战斗崩盘。
那么,该怎么变种公式呢?
答案是需要你自己定,是的,在最初确定采用哪一种公式后,剩下的变种需要你根据游戏题材、以后想挖的坑来决定,可能有人会说坑还没想全怎么办?没关系,坑的平衡之后再说,如果还是不知道怎么变种怎么办?那么可以参考其他游戏,并不是说要抄,而是可以看看他们用了怎样的变种方式,比如:
《赤壁》
[(我方攻击-对方防御)*技能伤害百分比+技能附加伤害]*攻击强度*(100-对方抗性)/100
这是一条很普通的变种公式,这里面有3个属性定位
第一,攻击、防御,会直接影响角色的战斗结果,姑且称为二级属性
第二,抗性,会间接影响角色的战斗结果,姑且称为三级属性
第三,技能伤害百分比、技能伤害加成、攻击强度,会影响角色的战斗结果,但这些都是技能的属性,不是角色的,与角色采用哪一个技能有关。
这条公式很完美地做到了2点
第一,技能特色,三个技能属性,可以让每一个技能都有各自的攻击特色,之后再给部分技能增加额外效果,比如封印、中毒这些,那么就可以很好地形成一整套技能数值。
第二,职业区分,因为有了抗性,所以每个职业必然需要不一样的初始抗性,为职业平衡和以后要挖的坑做预备。
《放置奇兵》
攻击者攻击*(1-((受击者护甲*(1-攻击者破甲))/(200+20*(受击者等级-1))*技能伤害率
这是一条较为复杂的变种公式,它变的是免伤率,虽然这个游戏本身也有免伤率这个属性,但免伤率是作为系数存在的,这里面有4个属性定位
第一,攻击
第二,护甲(数值)、破甲(百分比,达到100%时,受击者护甲强制为0)
第三,等级,之所以引入等级概念,是因为护甲值是根据等级而提升的,也就是说对于特定的英雄来说护甲/(200+20*(受击者等级-1))将是一个定值
第四,技能伤害率,是技能属性,与赤壁相比,放置奇兵的技能只有伤害率的一个属性,但是,它的技能有很多效果,比如中毒、燃烧、冰冻、眩晕等等,毕竟两个游戏的类型不一样,放置奇兵有几百个英雄,每个英雄有1个主动技3个被动技,如果技能属性太多,那玩家记起来就会很麻烦,不如在效果上做文章,而效果的属性数值大部分可以相同。
综合上面两个例子你会发现,公式变种就只能由你自己来定,因为游戏的设计多种多样,就算你是抄了某款游戏,也会想要做出一点不同的——除非你100%照搬。但总的来说,有两个原则:
1.初期不要过于复杂,一来方便玩家了解,二来方便以后扩展
2.公式要稳定,是说这条公式要100%考虑到各种情况,最简单的例子,放置奇兵的破甲达到100%时,会强制受击者护甲为0。
注意,公式变种在整个战斗公式设计过程中是一直在进行的,并不是一开始就完全确定,你只能先确定公式类型以及公式中用到的二级属性。
2.确定二级属性
所谓二级属性,是指攻击、防御、速度、HP、MP这几个,当然,根据游戏题材和公式类型,有可能会有不同的名称和数量,比如没有防御、没有MP、攻击变成物理攻击和法术攻击等等,但不管有多少种二级属性,都需要先确定,假设咱们有物理攻击、法术攻击、物理防御、法术防御、速度、MP、HP这7个(因为是回合制,所以速度概念一般都会有)。
3.确定一级属性
一级属性,会影响二级属性的数值,比如体质、力量、敏捷等等,也就是我们常说的加点值。一级属性需要根据已经确定的二级属性来设计,这里有个设计小规则,就是速度这个属性,尽量不要只受敏捷的影响,否则会导致敏捷的加点收益变低。以上面7个二级属性为依据,我们设计以下5个一级属性
体质:影响HP和速度
力量:影响MP、物理伤害和速度
魔力:影响MP、法术伤害和速度
耐力:影响物理防御、法术防御和速度
敏捷:影响速度
4.确定职业
一级属性和二级属性已经设计完成,那么游戏职业的范围基本也就可以确定了,游戏职业建议在4-8个,因为职业过多,会增加玩家的选择和认知难度,当然,有进阶职业系统的除外,因为玩家要进阶,一般对游戏已经有了很深的了解,这时候增加进阶职业不仅不会对玩家造成影响,反而会延长游戏的生命周期。假设我们设定的职业有战士、法师、术士、牧师、刺客5种。
5.确定二级属性计算公式
为什么要先确定职业再确定二级属性的计算呢?因为二级属性一般都会对职业进行修正加成,最明显的例子,就是《梦幻西游》的种族(虽然不是职业,但是它的设计流程跟职业类似),人族、魔族、仙族的每个一级属性对二级属性的影响系数都不同,比如1点体质,人族+5HP,魔族+6HP,仙族+4.5HP。当然,有一些游戏会采用更复杂的算法,比如:
HP=体质*8+50
物理攻击=力量*1+20+LV*1+职业附加
其中,职业附加=LV*系数,而根据不同的职业,系数不同,比如战士系数=1.5,刺客系数=2.5,法师系数=0等等。
但是,上面公式看似简单,其实涉及到很多方面的问题
初始一级属性点和每级可获得多少点一级属性点,并且是否能够自由加点提升等级是否也会增加二级属性职业附加如何计算装备附加如何计算各系数怎么确定
接下来,我将对这些问题进行一一解答。
初始一级属性点和每级可获得多少点一级属性点,并且是否能够自由加点?
初始一级属性点一般=每级可获得的总一级属性点,比如每级可获得10点属性点,那么初始一级属性点就是体质、力量、魔力、耐力、敏捷各10点。
每级可以获得的一级属性点一般由多少个一级属性决定,一般来说,都是以平均配点*1或*2,或者之后的模拟配点为准。
是否能够自由加点,这个要看游戏具体的设计,一般来说,为了让玩家前期更专注游戏,或者避免极限配点,都会先设定达到某个等级才能开启自由加点,当然,有些游戏一开始就可以自由加点。
提升等级是否也会增加二级属性?
主要是看提升等级时是否会增加固定的一级属性点,比如原本有10点属性点,但是其中5点是固定平均加点的,那么就只剩下5个自由点,这时就不需要额外增加二级属性了,而如果没有固定属性点,那么通过提升等级来增加二级属性点是另外一个方案,比如
《天龙八部》的基础物理攻击=初始物理攻击+力量*系数+LV*系数
《神武》宠物的攻击=((攻击资质*LV*2*(成长率/2000+0.7)+力量*0.75*成长率)/1000+50)*4/3
为什么要这样子呢?因为如果不做这个处理,会导致玩家极限加点时出现极端效果,比如10点全加攻击,但因为提升等级没有生命,会导致生命值一直不变的情况。
当然,也可以既有固定属性点,也可以增加等级加成,但这个通常都只会在攻击上做额外的加成。
职业附加如何计算?
职业附加有两种方式,一种是一级属性*系数,另一种是等级*系数,以控制难易度来说,推荐等级*系数,但是一级属性*系数可以让职业定位更加分明。
那么系数究竟是多少呢?主要是看你的职业定位和每级属性点,比如每级可自由分配5个属性点,那么职业附加的影响系数就可以定为5点,假设战士的定位是高HP中攻击中防御,那么最终职业附加如下
职业定位中的高中低是相对各个职业而言的,不是相对系数,所以2HP可以认为是高,而2物理攻击则认为是中。
装备附加怎么计算?
装备属性一般都可以认为=裸身属性*系数,也就是说装备物理攻击=裸身物理攻击*系数,根据装备是否有职业限定,又可设计为是否增加职业附加。因为装备一般都是固定等级的,所以属性不会受到角色等级的影响,也就是说不会有LV*系数这个因子。我们可以采用模拟配点的方式来设计装备属性数值,如果会有10个属性点,那么如何配点呢?为了突显装备的等级效益,可以大大加强攻击属性的效果,也就是力量和魔力,比如体质、力量、耐力以1:8:1、2:7:1、3:6:1或2:7:2的方式分配,这样子一来可以降低战斗回合数,二来在战斗效果上会有更明显的装备更换效果。假设咱们以1:8:1的方式分配,那么最终装备附加就会变为
物理攻击=力量*A1=(10+LV*8)*A1
HP=体质*A2=(10+LV*1)*A2
物理防御=耐力*A3=(10+LV*1)*A3
注意,这里的装备属性是指所有的属性效果,包括宝石、套装效果等等,有人会说套装效果是增加百分比的怎么办?其实反向逆推得出百分比就可以了,比如40级装备,除了增加HP外,套装效果还会额外增加10%的HP,那么就需要先算出40级总HP是多少,然后*10%,反向得出40级装备的基础HP。
各系数怎么确定?
通过模拟加点来确定,比如假设每级5个一级属性点固定+1,并且留有5点自由属性点,提升等级会增加攻击,那么根据
物理攻击=力量*A1+LV*B1+初始物理攻击+职业附加+装备附加
HP=体质*A2+LV*B2+初始HP+职业附加+装备附加
物理防御=耐力*A3+LV*B3+初始物理防御+职业附加+装备附加
以1:3:1作为标准分配体质、力量、耐力(这个标准是最平衡的,或者自己设定一个最平衡的配点标准也行,同时这也是速度不能只受敏捷影响的原因),假设当前计算的是战士,职业附加攻击=LV*2,HP=LV*2,物理防御=LV*1,那么
物理攻击=(10+LV+LV*3)*A1+LV*B1+C+LV*2+(10+LV*8)*A1=LV*(12*A1+B1+2)+A1*20
HP=(10+LV+LV*1)*A2+LV*B2+LV*2+(10+LV*1)*A2=LV*(3*A2+B2+1)+A2*20
物理防御=(10+LV+LV*1)*A3+LV*B3+LV*1+(10+LV*1)*A3=LV*(3*A3+B3+1)+A3*20
也就是最终目的是转化成一个等级相关的公式,然后进行拉表演算,以确定各个AB值。
那么如何演算呢?
作为回合制游戏,一个很重要的特征就是回合,而根据平衡原理,最简单的算法就是两个完全相同的个体进行战斗,所以你需要先定好一场战斗需要打几回合,因为每回合双方各出手1次,所以HP/(物理攻击–物理防御)正好会等于你设定的回合数,假设是7回合,那么最终就是
(LV*(3*A2+B2+1)+A2*20)/((LV*(12*A1+B1+2)+A1*20)–(LV*(3*A3+B3+1)+A3*20)=7
接下来,设定一个游戏平衡等级,所谓平衡等级,就是在这个等级时,游戏初期设计的全部系统都已完成,玩家真正进入游戏的周期闭环,注意不一定是等级上限,有可能还没达到等级上限,但一般用等级上限来确定就可以,如果还是不知道怎么做,有一个最简单的方法,就是你想让玩家在6个月内(游戏生命周期短的甚至可以2个月)达到哪一个等级。假设咱们设为100级。
设定平衡等级之后,就可以用excel拉表的方式来确定这6个参数了,总的来说,有两个原则:
1.根据你想要的加点影响权重来分配A、B值,A值主要用于影响加点,A值越大,加点收益越高,B值主要用于影响等级收益,B值越高,提升等级后获得的效果越强,但是注意,B值的影响效果要比A值的小,也就是说,同样一个效果,A值+1的效果要比B值+1的大。
2.根据你想要的战斗效果数值来确定A、B值的大小,通俗地说,就是你想要战斗中掉血的数值有多大,目前国内游戏正在向两个极端发展,往小的好处是精炼简洁,玩家容易看出数值变化,坏处是预留的坑扩展难度较大,比如掉落生命值额外增加0.05%,那么原本掉落100生命跟掉落10生命的效果在显示上就会差很多,而大数值在将属性拆分到各个系统时会更加方便。
确定好6个参数之后,再演算出初始值,各初始属性值主要是用来平衡低等级时的战斗演算效果,下面3图是3种不同的系数效果
可以看到,图1的数值最大,属性增加也最快,图2最小,图3居中,而以设定的7回合效果来看,图1效果最好。
如果单看上图,回合数是平衡的,但实际上,我们采用的平衡等级和回合数都是理想状态,所以根据玩家的加点以及装备的收集程度,回合数肯定会有波动的。
法术攻击的公式通常与物理攻击相同,只不过各职业加成会不一样,法术防御同理。
那么MP和速度该如何确定呢?
确定速度
速度主要用于确定战斗中的先手,公式通常为
速度=体质*A+力量*B+魔力*C+耐力*D+敏捷*E+初始速度+职业附加+装备附加
其中ABCD一般都是同一个值,当然,如果你想让法师类职业不加速度的话,可以C=0。
E的值通常是其他几个值的N倍,具体倍数可自己设定,推荐5-9倍,主要是限定敏捷的加点收益。
A值如何确定呢?(假设4值都相等),答案是由你自己确定就可以,因为速度不会影响到伤害,但是,建议不要过大或过小,因为技能属性中可能有速率的概念,战斗中可能也有影响速度的效果,过大或过小容易出现效果过强。推荐0.1-0.5之间就可以了。
装备附加的算法同样采用模拟加点的方式来确定。
确定MP
MP主要用来限定战斗中可释放的技能个数,公式为
MP=力量*A+魔力*B+LV*C+初始MP+职业附加+装备附加
ABC的值主要由回合数和技能来决定,因为技能通常是有技能等级这个概念,也因此,每个技能的MP消耗会设计成与技能等级相关,比如SLV*1.2+20这种,所以我们的思路是:设计一个最平衡的MP消耗公式——>以平衡等级(即上面的100级)算出需要消耗的量——>以7回合施放技能来算出基础MP总量——>乘以一个额外系数来算出最终MP总量。
之所以要再乘以一个额外系数,是因为我们使用的MP消耗公式和回合数都是理想型。
那么MP消耗公式要怎么设计呢?公式通常为
SLV*X+Y
XY由你自己确定就可以了,但一般来说当SLV=15~25时,SLV*X=Y,这样可以保证玩家前期战斗不会太过消耗MP。
至此,战斗公式的第一部分已经完成了,接下来,需要设定三级属性。
6.确定三级属性
所谓三级属性,就是指命中、闪避、治疗暴击、暴击、免暴、暴伤、降低暴伤、封印、抗封、抗性、攻击加成、攻击减弱等等。
这些三级属性,可以在多种途径上增加,比如装备、符文、神器等等,而在战斗中也可以增加,比如技能、光环。
如此之多的效果,很容易出现不平衡,因此我们需要采用2个思路
1.效果抵消,比如你想在装备上增加暴击属性,那么就同时在装备上增加免暴属性,让装备效果平衡,这是最简单的抵消方式,但实际上,根据各个属性的收益不同,增减的效果可能会不一样,但思路是没变的。
2.三级属性尽量避免过于影响战斗效果的数值,比如闪避,你可以在装备上增加50%闪避、50%命中,虽然结果是平衡了,但是在实际战斗中,50%闪避要比50%命中更加影响体验,因为命中在玩家看来不一定是增加的那50%造成的,但是闪避玩家就会认为是,虽然可能还会有其他多种因素的影响。
三级属性建议都设定一个范围,比如闪避,最大闪避只能达到80%,封印,最小封印只能达到20%,这样子可以避免意外状况的发生。
7.设定技能属性
所谓技能属性,就是除了各种技能效果外,需要用来计算最终伤害的属性,比如上文说的技能伤害率、技能强度、技能伤害百分比、技能附加伤害、技能威力等等。
一般来说,根据你的游戏类型,技能属性1-3个已经足够了,比如多英雄培养的卡牌类,1个技能属性就够了,多于1个,玩家会增加成倍的理解和记忆负担,而像回合制这种少职业的游戏类型,2-3个技能属性玩家还是能够接受的。
那么该如何设定技能属性呢?
需要先明确你想如何进行技能效果加成,按加成方式,有两种类型:
(攻击-防御)*A
(攻击-防御)+B
A一般为百分比定值,容易控制战斗结果,B一般随技能等级提升而增加,有技能培养的效果,当然,也可以两者一起配合,最终为
(攻击–防御+B)*A
而《赤壁》则更加一步,变成了
((攻击-防御)*A+B)*C
这里面C一般为百分比,主要用于突显技能的伤害效果,区分技能强弱,A同样为百分比,但会根据技能等级而提升,A和C的作用相同,但更能体现双方的实力差距,B为普通数值,也会根据技能等级而提升,它主要用于体现技能提升等级的效果,也就是说,B其实可以理解为固伤。
假设我们设定技能属性为
(攻击-防御+技能附加伤害)*技能强度
8.设定技能效果
这里所说的技能效果,可以从狭义上简单理解为各种buff,一般来说,即使在设计技能时没有用到但以后可能用到的效果,也尽量先定下来,这样子可以先形成计算公式,之后扩展也方便。
技能效果从广义上来说,也可以指其他加成效果,比如神器、装备、符文、光环之类的效果,而这些效果,大部分都可以在技能的效果中出现。
之所以在这一步设定技能效果,是因为部分效果需要用到战斗公式中,那就是二级属性的增益减益效果和伤害结果的加成衰弱效果。这些效果通常需要遵循1个思路,那就是对加成系数采用连加,对衰弱系数采用连乘,也就是
攻击力*(1+攻击力加成系数1+攻击力加成系数2+攻击力加成系数3)*(1–攻击力衰弱系数1)*(1–攻击力衰弱系数2)*(1–攻击力衰弱系数3)
这是因为对于攻击加成,如果采用连乘,那么攻击力的上限将远远大于预设的地步,攻击加成系数1*攻击加成系数2*攻击加成系数3的情况下,可以达到10倍于正常攻击力的水平,而对于攻击衰弱,如果采用连加形式,将很快减少到0%以下,即使没有到0,在这种状况下,任何一点攻击衰弱都将对战斗力造成极大的影响。
9.确定计算步骤
进行回合制战斗计算,需要先明确几个概念:回合、回合开始前、回合开始后、回合结束前、回合结束后、指令下达期
回合:从前一次弹出回合数字到下一次弹出回合数字之间。回合开始前:从弹出回合数字之后到第一个战斗单位出手之前,这里隐含了“指令下达期”,也就是通常玩家进行战斗操作的30s时间回合开始后:第一个战斗单位出手之后回合结束前:最后一个战斗单位出手之前回合结束后:最后一个战斗单位出手之后到下一个回合数字弹出之前。
具体名称以程序为主,因为他们不一定把“最后一个战斗单位出手之后到下一个回合数字弹出之前”的这一段称为回合结束后。
之所以要明确这几个概念,是因为你需要确定各种效果的触发、减少回合。
中毒等dot伤害要在哪一步触发?
一般来说dot伤害在附上去的时候会触发1次,之后每回合开始前再触发1次,同时持续回合-1,也可以附上去时不触发,之后每回合开始前触发1次,同时持续回合-1,两者的区别,在于附上去时是否触发并让持续回合-1。
这里的每回合开始前会再额外区分成两种,一种是在指令下达期之前,一种是在指令下达期之后,两者的区别是玩家是否需要预估dot伤害的结果,比如dot触发了死亡,如果是在下达期之前,那么玩家就可以进行复活操作,如果是在下达期之后,那么玩家就需要预估该次dot是否会触发死亡,从而决定是使用复活技能还是回复技能。
回复类效果、dot伤害和复活通常都在同一步骤。
注意,这里的复活不是指技能类复活,而是死亡达到一定回合之后再复活,比如《梦幻西游》的鬼魂,技能类复活通常都是即时的。
回复类效果、dot伤害、复活哪一个先触发?
这个顺序其实影响很大,但一般都会先回复再dot,主要考虑到假如dot伤害时战斗单位正好死亡的情况,这时候回复类效果其实就是失效的,当然,反过来其实也可以。
复活通常也放在最后,因为有些状态不一定会死亡清除,可以避免复活后的各种复杂情况,比如复活后立即因dot再次死亡。
暴击伤害在哪一步计算?
触发暴击时,伤害结果会有额外加成,加成效果一般在0.2~1.5之间,主要根据你想设定的暴击伤害收益来确定,不过目前大部分回合制都是1.5,而卡牌游戏大部分都是2。
暴击伤害有2种计算方式:
由公式计算出的基础伤害*暴击伤害加成+各种额外伤害
(由公式计算出的基础伤害+各种额外伤害)*暴击伤害加成
也就是要不要把额外的伤害数值计算在内,注意这里的额外伤害是指具体的数值,不是百分比。
群攻效果如何计算?
游戏都会有群体技能,而群体技能的伤害计算理论上有两种类型
1.所有受击者的伤害算法完全相同
2.根据受击者个数,在各个受击者伤害算法结束之后再分别乘上系数
目前卡牌类游戏多采用第一种类型,而回合制通常采用第二种,比如
具体各伤害系数可以由你自己决定,但有一个原则,伤害系数=1要放在个数=1或2上,不然群攻技能的收益就会降低。
10.确定最终公式
以上几步完成之后,基本就可以把战斗相关的公式信息提交给程序了。
一级属性
体质:影响HP和速度
力量:影响MP、物理伤害和速度
魔力:影响MP、法术伤害和速度
耐力:影响物理防御、法术防御和速度
敏捷:影响速度
二级属性
物理攻击、法术攻击、物理防御、法术防御、速度、MP、HP
三级属性
命中、闪避、治疗暴击、暴击、免暴、暴伤、降低暴伤、封印、抗封、抗性、攻击加成、攻击减弱
需要解释各个属性的作用并限定部分属性的范围,这里不再赘述。
职业
战士、法师、术士、牧师、刺客
职业附加
装备附加不需要提交给程序,那是你自己以后用来挖坑的数值。
属性计算
HP=体质*16+LV*35+200+职业附加+装备附加
MP=力量*1+魔力*1+LV*5+200+装备附加
物理攻击=力量*1+LV*10+80+职业附加+装备附加
法术攻击=魔力*1+LV*10+80+职业附加+装备附加
物理防御=耐力*2+LV*5+职业附加+装备附加
物理防御=耐力*2+LV*5+职业附加+装备附加
速度=体质*0.2+力量*0.2+魔力*0.2+耐力*0.2+敏捷*1.5+职业附加+装备附加
计算步骤
回合开始前,回复伤害结算——>dot伤害结算——>战斗单位复活
技能效果
中毒、复活、封印、反击、追击、连击、降低伤害、增加伤害、扣除目标MP、吸血……
需要解释各个技能效果
加成效果采用连加,衰减效果采用连乘
战斗公式
基础伤害=(施法者攻击力-目标防御力+技能附加伤害)*技能强度*加成效果*衰弱效果
最终伤害=基础伤害+额外伤害
暴击伤害=最终伤害*(1+暴击伤害加成)
治疗效果=(施法者攻击+技能附加伤害)*技能强度*加成效果*衰弱效果
命中率=施法者命中率-目标闪避率,最小不能低于20%
11.确定技能
确定完战斗公式、技能属性和技能效果之后,接下来就需要为各个职业设计战斗技能了。
除了已经确定的技能附加伤害和技能强度外,战斗技能通常还需要以下各种参数:学习等级、作用人数、持续回合、命中率、技能速率、MP消耗。
因为是有等级概念的回合制技能,所以各种参数通常会和技能等级、目标等级有关。
技能附加伤害
SLV*X+Y
以SLV=LV来确定XY的值,一般来说,技能附加伤害=(攻击-防御)*系数,而根据技能的强弱,系数的值通常在15%-30%之间,假设咱们设定在20%,则
技能附加伤害=SLV*2+20
技能强度
技能强度是一个百分比数值,普通技能都是100%,只有高级技能或部分特色技能会有强弱之分,比如有额外效果的技能,技能强度要小于100%。
当然,如果采用的是群攻技能所有目标伤害相同,那么群攻技能的技能强度就不能采用100%,一般是50%~70%。
作用人数
SLV/X+Y
群攻技能才需要的参数,除非是全体技能,否则都会有一个上限值,比如最多5人。
初始人数为Y,之后技能每提升X级增加1人
XY的值比较好定,而且可以做出不同的特色,比如
SLV/15+1:初始人数少,但随着技能等级提升会快速增加人数
SLV/60+3:初始人数多,但人数增加很慢
持续回合
(SLV–ELV+A)/B+SLV/C+D
ELV为目标人物等级
初始回合为D,之后技能每提升C级增加1回合,技能等级每大于目标(B-A)级额外再加1回合,当然,有些技能只需要其中某一项就可以,比如只需要D,也就是固定回合。
持续回合需要设定上下限。
ABCD的值由你自己设定就可以,但通常会有以下几个思路:
1.增益效果持续回合比减益的多1回合
2.平衡等级下,作用人数多的持续回合少
3.封印类效果持续回合比一般减益的少1回合
4.召唤物持续回合比一般增益的多1-3回合
命中率
大部分技能都是100%,部分特色技能会有变化,比如《梦想世界》中有两个技能,一个高攻低命中,一个低攻超高命中。
成功率
(SLV–ELV)*A+SLV*B+C
主要是指附加减益效果或封印效果的命中率.
初始成功率为C,之后技能每提升1级增加B成功率,技能等级每大于目标1级,成功率额外加。
成功率一般也需要设定上下限,通常是10%~100%。
初始成功率不能过低,一般都不小于50%。
技能速率
要说技能速率,首先要明白一个概念:乱敏
所谓乱敏,是指将每一个战斗单位的速度*系数,然后重新排列出手顺序,这个系数通常是90%~110%,也可以扩大或缩小范围,但不能太大或太小。
乱敏有两种计算方式,一种是进入战斗时计算一次,之后整场战斗的速度都是如此,另一种是每回合计算一次,主要是有速度增益减益状态的存在,但这样子效率会比较低。
技能的速率会对乱敏值进行修正,也就是说,每回合一定会重新排列出手顺序,通常
最终速度=乱敏速度*技能速率
技能速率一般为100%,方便玩家控制,而针对部分特色技能,可以让速率进行增减,比如高速技能或低速技能。
至此,一个回合制游戏的战斗数值框架基本就已经设计完成,但是,并不是说这就是最终结果,还需要细调和实际操作才能逐步完善。
以上就是设计回合制游戏战斗数值的基本步骤,如果你有兴趣,不妨自己手动设计一次?
标签: #卡牌类游戏算法有哪些类型