【从零开始】放置回合卡牌构建数值框架与战斗文档设计撰写教学(战斗篇1)
私以为,战斗策划是游戏策划中最“快乐”的职位,你可以自由设计游戏技能、战斗规则、战斗逻辑和战斗表现等等内容,自主性远超打杂策划,很容易获得成就感。而对于许多游戏来说,战斗都是其最为核心的内容,所以成为一个战斗策划,不仅能获得职业成就感,还有“钱途”。
战斗策划做得好,完全能以最小的成本做出游戏差异化,可以让一个游戏由死转生,甚至成为爆款。
比如最近的《提灯与地下城》的战斗体系就很有意思。
1、人物技能固定升级。
2、游戏中宠物拥有技能,角色可以选择宠物出战,这样百变百搭,人物带不同的宠物就等于选择了不同的出战技能。
3、游戏中提灯技能也可以选择升级,人物战斗相关属性,技能也会随着提灯不同而不同。
4、游戏中绿色装备套装技能,传奇装备特殊技能。穿装备不同,人物就拥有了不同的额外的技能。
这样的设计就构成了极为有意思的战斗策略体验,让玩家随着游戏进程发展,开启新系统就是开启新的外挂技能,获得新的宠物,新的装备,新的提灯,其实核心就是获得了新的技能。这样的玩法设计,对于一个战斗策划来说,很容易设计,很容易实现。
我们再来看《率土》、《三国志战略版》和《鸿图之下》(鸿图可以看做特殊的回合)。
1、将领固定1个技能
2、剩余2个技能可以随意选择组合搭配,这样的设计,使得将领技能搭配成为了战斗的核心,将游戏的战前策略发挥到了极致,也使得此类游戏目前成为了回合类卡牌的策略巅峰。
而以上说的游戏,大家只要做了战斗策划就会了解,要实现相对来说是很容易的(暂时不讲平衡性)。下面就开始讲讲战斗文档如何撰写,相信大家看完本文就能了解以上游戏的战斗大约是如何做的,也能自己设计出自己喜欢的战斗规则逻辑系统了。
下面就简单写一个放置回合卡牌游戏的战斗文档范例,新人可以学习一下。
放置回合卡牌战斗文档撰写可以大约分为以下几点:
1、战斗综述。
2、属性大全。
3、战斗公式。
4、战斗规则逻辑。
5、攻击结算(瀑布圆桌)
6、战斗出手顺序与计算优先级。
7、战斗索敌规则
8、技能触发规则(触发点)
9、战斗胜负规则
10、法术效果文档(法术效果、法术生效规则等)
11、技能效果文档
12、游戏的特殊规则(怒气规则。神兽?)
13、技能升级装配相关文档。
13、战斗表现相关文档。
一、战斗综述
战斗综述在全文档开头,作用是让读者对游戏战斗有个整体概念。程序看了这个能够初步有个评估。大家游戏项目的战斗如果有原型,可以直接拿其他游戏贴图让程序看看。我们现在是在写一个放置回合卡牌游戏的文档,那么就可以画个图。画完图开始写。
1、本游戏攻击方与防守方最多各上阵5名英雄,固定站位,布阵如上。
2、游戏中战斗单位不仅有英雄会攻击,放技能,还可能有神器会技能,神兽放技能,所以需要布置一个场景对象(比如开场对全体敌人造成伤害,谁放技能,就是一个看不见的场景对象放的。)
3、本游戏有怒气值设定,怒气值达到一定数值英雄可以释放怒气技能,怒气技能释放可手动释放,也可以自动释放。
4、攻击顺序按速度值大小排序。
5、战斗时间单位、法术效果生效时间基本单位为回合。
好了,以上就是综述,详细的内容将会在其他地方写。
备注:如果你想做的游戏是自由换技能,或者连击连协攻击的体系,那么都要写出来。比如你写一个英雄只有1个固定技能,其他技能全都可以自由组合的话,那么也要写出来,虽然不写程序后期也能做出来,但是现在写让程序心里有个数,以后不会被骂。
二、属性大全
没有属性如何战斗?属性意义不明如何写战斗公式?比如《最强蜗牛》一点元素属性等于7点无视防御的伤害。如果你不写出来,程序怎么知道属性是啥意思呢。所以第一步,我们需要写个属性大全,把每一个属性是啥意思,全都写出来。另外还可以标注一下,哪些属性需要在角色面板显示,哪些不需要。
随着游戏属性越来越多,慢慢的属性有了1级属性,2级属性,3级属性。
这里举个例子说明一下什么是1级属性,2级属性,N级属性:
MMO游戏中有力量,敏捷等属性,而在战斗公式中,力量敏捷并不直接进行计算,而是将力量转换为攻击力,血量;敏捷转换为闪避,速度、命中、暴击等等属性进行计算,比如1点力量等于4点攻击,那么这些属性(力量敏捷)我们可以看做1级属性,其衍生的攻击则为2级属性。
再举个老游戏玩家都了解的例子:《魔兽世界》中最早45级版本是没有暴击等级这种属性的,就只有暴击率属性,如暴击+1%。之后由于数值膨胀等原因,就加入了暴击等级这个概念,暴击等级转换成的暴击率受到玩家等级影响,所以在此,暴击等级看做是1级属性,暴击率可以看做其衍生的2级属性。
但是由于此处只是单纯的教学,就不那么多1级属性2级属性了,就简单的找个图吧。如下(此图少了一些信息,请加上显示规则,是否要在英雄面板或者哪里显示请写出来,加2列。)
我们需要明确属性数值类型,属性具体作用,以及显示规则,比如某些属性不需要显示在英雄属性面板,有的要显示)
备注:曾经的《冒险岛》游戏有出售双倍经验卡,双倍掉落卡,那么这算是属性吗?其实是属性!所以大家游戏假如有类似东西,也可以写上去。
三、战斗公式
有了属性,我们来看公式。公式包括了属性计算公式,战斗相关公式。以下简写一个吞卡升星放置卡牌游戏的卡牌属性公式。
卡牌单项属性的总属性(如总生命值)=卡牌基础属性*千分比加成值+附加属性。
卡牌基础属性(生命值、攻击力与防御力)=卡牌初始属性*卡牌等级系数*卡牌阶级系数*卡牌星级系数
卡牌基础速度=卡牌初始属性+卡牌等级增加值+卡牌阶级增加值+卡牌星级增加值
卡牌基础属性为:生命值、攻击力、防御力与速度
所以:
卡牌基础生命值等于=卡牌初始生命值*卡牌等级系数*卡牌阶级系数*卡牌星级系数
卡牌基础防御力等于=卡牌初始防御力*卡牌等级系数*卡牌阶级系数*卡牌星级系数
卡牌基础攻击力等于=卡牌初始攻击力*卡牌等级系数*卡牌阶级系数*卡牌星级系数
卡牌基础速度等于=卡牌初始属性+卡牌等级增加值+卡牌阶级增加值+卡牌星级增加值
那么卡牌初始属性从何而来呢?我们需要备注:导表是指配置表
初始生命值=英雄导表初始生命值
初始防御力=英雄导表初始防御力
初始攻击力=英雄导表初始攻击值
初始速度=英雄导表初始速度值
除此之外还有以下属性
基础闪避率 = 英雄导表闪避率
基础命中率 = 英雄导表命中率
基础暴击率 = 英雄导表暴击率
基础暴击伤害 = 英雄导表暴击伤害率
基础抗暴率 = 英雄导表抗暴率
基础破甲率 = 英雄导表破甲率
基础增伤率 = 英雄导表增伤率
基础减伤率 = 英雄导表减伤率
基础免控率 = 英雄导表免控率
基础控制率 = 英雄导表控制率
基础技能增伤=英雄导表技能增伤率
基础技能减伤=英雄导表技能减伤率
那么除了生命值、防御力、攻击力和速度外的属性如何计算变化值呢。我们继续写一个公式。
基础数值 + 数值附加 - 数值减少
例:导表闪避为50,现在装备加50闪避,被人放了一个减30闪避的DEBUFF。
那么闪避就是,50+50-30
也就是说,这个游戏属性计算其实只有2个公式,如下:
计算公式(1): int(基础数值 ) * (1 + 百分比加成)) + 附加数值
计算公式(2):基础数值 + 数值附加 - 数值减少
然后我们备注一下,每一个属性用哪种公式,如
生命值、防御、攻击、和控制率、免控率。计算使用公式(1)
速度,闪避、命中、暴击、暴击伤害、抗暴、破甲、增伤等全都使用公式(2)
以上就是简写的属性计算公式了,如果你的游戏中有一些奇怪的属性,计算方法还非常特殊的话,那么可以写出来让程序知道。
在属性计算公式完成之后,我们还需要什么呢?需要战斗公式。战斗公式分为减法公式与乘除法公式,现在使用乘除法公式的游戏越来越多,加减法的游戏大多是传奇,青云决,老版卡牌游戏、微信小游戏等。以下我们在网上抄一个公式,如下。
攻击系数=攻击力*技能系数
防御系数=1/(1+(攻击系数/(防御力*4))
最终伤害=攻击系数*(1-防御系数)*(1+增伤减伤系数)*(1+种族系数)
暴击最终伤害=攻击系数*(1-防御系数)*(1+增伤减伤系数)*(1+种族系数)*暴击系数
大家注意,一些新名词,程序可能不知道是什么意思,所以有的名词需要解释一下:
技能系数: 技能伤害倍率,如技能为300%攻击伤害,则技能系数为3。 由于配置表填的是千分比,所以技能系数就是配置表数值除以1000。
增伤减伤系数: 包括怒气增伤,职业克制增减伤与增伤率,减伤率,前排后排站位增减伤等。
种族系数: 种族克制增减伤
那么战斗公式是否就这样完了呢?当然没有,我们的游戏中不仅有伤害,还有治疗。所以得有治疗恢复公式。
恢复量 = 攻击系数*(1+恢复增减系数)
暴击恢复量 = 恢复量*暴击系数
恢复暴击率=暴击率(与攻击技能不同的是此处只计算恢复者暴击率,受恢复者的抗暴不进行计算)
恢复暴击伤害率=暴击伤害率
继续名词解释:
恢复增益减系数:恢复效果百分比加减增益+技能增伤加成 此处直接用加减法(公式2)计算,如施法者恢复效果提高10%,被恢复单位受到恢复效果提高10%,那么一共就是提高20%效果
然后我们又会想到一些特殊情况,比如吸血,比如按生命值最大值加血的恢复,到底要不要加恢复增益系数呢?如果算的话,公式如下。
按最大生命值比例恢复的效果
恢复量=目标生命最大值*恢复千分比*(1+恢复效果增减系数)
按造成伤害的千分比恢复生命值的效果
恢复量=造成的总伤害*千分比吸血*(1+恢复效果增减系数)
战斗公式写到这,差不多快要完了,我们再加上一些程序可能不太清楚的公式,其实就是上面的公式1与公式2。
最终命中率=攻击方命中-目标方闪避
最终暴击几率 = Math.Max(0, 攻击者暴击率 - 目标者免暴率)
最终暴击伤害率=施法者暴击伤害加成-目标暴击伤害倍率降低
最终控制率 = 攻击者的技能控制率 * (1+控制率-免控率)
最后再来个战斗力计算吧。
战斗力=属性1 * 系数1+属性2 * 系数2+.........属性N* x系数N
战斗力计算是许多新人纠结的点,但是其实没有必要纠结,因为战斗力设计出来的原因是让玩家知道自己实力与其他人的差距,似乎这个最早是在游戏《激战》中出现。既然出现原因只是为了对比出差距,那么我们就不需要完全真实,只要尽量真实就行。
具体系数计算请使用标准木头人进行1V1战斗,战斗要使用游戏中的战斗规则与公式,然后计算出各个属性的价值,就可以得出大约系数了,不过可以明确的说,在游戏不同阶段,不同的属性,价值不同。所以得出的属性也不会是完全“真实”的,但是只要我们始终控制属性投放比,那么就不会有问题。就可以完美达成战斗力设计出来的目标,既然目标达成了,我们也不需要计算最准确的战斗力数值了,而且事实上也算不出,我曾经研究了好久动态战斗力计算,结果就是敌人属性不同,我的战斗力就不同,这样变动的战斗力,不仅麻烦没用,玩家还理解不了。
备注:战斗数值是依附于战斗逻辑,战斗规则,战斗公式的。如果没有这些,那数值属性毫无意义。如果有人在没有了解任何系统规则,战斗规则,战斗公式的前提下跟你讨论战斗数值,那么不用讨论,因为可能没有意义。再拿《最强蜗牛》蜗牛举例,1点元素值假如你不知道他的公式,你觉得这属性是强是弱,能判断出来吗?假如1点元素不是7点伤害,而是100点呢?总之就是在不知道规则,战斗公式之前,你无法准确判断任何属性的实际作用。
大家有时候也可以多多参考优秀游戏的战斗公式设计,比如回合MMO游戏《梦幻》中战斗时出手顺序并不严格按照速度排序,而是有乱敏设计,其速度在每回合开始前会随机乘以一个系数,比如(0.98-1.02),这样在战斗时,速度快的单位不一定先出手,给战斗带来了一点随机性。
再次提醒切记,讨论战斗数值不能脱离战斗系统,战斗公式,脱离系统规则公式讨论战斗数值几乎没有意义。
四、战斗规则逻辑
不同的游戏战斗规则可能大有区别。战斗规则这里不能随便想想,必须考虑完善,甚至是在项目立项时就要考虑清楚,我们到底要做一个什么游戏。因为任何以战斗为核心的游戏在战斗框架搭建完毕之后,都不是那么容易修改的。这里不仅涉及程序,还涉及前端表现。
从实现的角度讲,要仔细研究设计,从游戏游戏性来讲,战斗要做出差异化,更是要好好设计。当然,要简单设计也没关系,游戏其他部分做好就行,比如我们做一个战斗规则很简单,但是技能效果,法术效果多样,技能搭配多样也很好,比如《提灯与地下城》,战斗就极其简单,做的吸引人的是技能体系。
下面画一个普通的回合游戏的战斗逻辑。
现在一般回合游戏都有“指挥”技能,此技能在战斗前发动,那么不同技能如何发动,谁先谁后,在优先级文档写。另外,一般持续性恢复效果和持续性伤害效果都是在下一回合开始前进行计算。
五、攻击伤害结算
这个相信大家都很熟悉了,就是那个瀑布和圆桌,这里实在是没啥好说的,毕竟太过简单了,我们在网上搜一个类似的图,如下(下图逻辑图用的图形用错了,但是能理解就行)。
稍微要注意点的就是以下这点:一般瀑布逻辑中最先进行判断的事件,概率才是真实的,在此之后进行的判断,概率都是缩水的。另外有的游戏判断之后可以连续判断,比如又暴击又格挡,这个看规则设计了。
六、战斗出手顺序与优先级
疑问:
1、在战斗时,速度相同的英雄谁先出手?
2、指挥技能和被动技能谁先生效?
3、一个技能触发点同时触发了神器技能、英雄技能和神兽技能、谁先出手?
4、一个持续3回合的恢复效果和一个持续3回合的持续伤害效果(灼烧)在回合末尾谁先进行计算?
以上所有可能让程序产生疑问的内容,我们都需要进行说明。下面举例1:
英雄出手顺序:
1、当同一方英雄速度相同时,按站位顺序从小到大出手。如1号位与5号位速度相同,那么1号位先出手。
2、当不同方英雄速度相同时,攻击方先出手(攻击方优势,鼓励进攻)。
程序不知道位置序号,我们来标一下。
需要注意的是,这里的出手顺序是常规行动出手顺序。
名词解释:英雄按速度排序每回合固定进行1次的行动。
在游戏中技能的各种触发点会打断此顺序,举例:被攻击反击,A攻击B,下一个按速度是C行动,但是B被攻击会反击,那么B先反击,C才会行动。
举例2:
恢复与持续伤害DEBUFF谁先结算?
我们可以设想一下,如果先计算持续伤害会出现什么情况?
会出现掉血之后,英雄死亡,恢复效果无效的情况。
所以现在一般游戏设计都是先恢复后DEBUFF掉血。
七、战斗索敌规则
战斗索敌,简单理解就是,英雄放一个技能,到底打谁(对谁生效),是打后排长头发的男性?还是前排血量最低的拿刀的青蛙呢?
如果我们要在回合游戏中做一个双子BOSS,其中一个死亡,另外一个会将他复活,那么要如何做?相信很多玩过《wow》的朋友都记得血色要塞的“苟男女”,其实在回合游戏中,也能做到同样的效果。这也是做战斗好玩的一点,其实所有的,你见过的,你能想象到的符合目前游戏战斗框架技能,程序其实都能做(请别乱想,太难做了程序不想做,不符合游戏目前框架的设想会让程序觉得你是傻子,所以在设计游戏战斗框架时,你就要想想这些事情)。
那么索敌规则文档如何写呢?以下简单举例1:
索敌规则1:攻击血量最低的目标
1、血量最低按生命值千分比计算(不是按值),场上当前血量与最大血量的比值最低的目标。
2、当攻击目标个数是多个时,如攻击2个血量最低的目标。那么在敌方存活单位进行血量“最低”排序,选2个进行攻击。
3、当血量最低目标个数小于攻击目标个数时(攻击2个血量最低目标,但是敌人只活着一个),那攻击全体存活目标。
索敌规则2:攻击后排目标
1、攻击敌方站位在后排的目标。
2、当攻击目标个数小于后排存活单位个数时,随机攻击目标个数的单位。(如后排3个人,你攻击1个,就随机选一个进行攻击)
3、当攻击目标个数大于后排存活单位个数时,优先攻击后排目标,多余目标个数从前排选取。(也可以设计为不攻击前排,不够就不够)
4、当后排没有单位时,攻击前排目标。
所以如果是策划定配置表的话,那么这个索敌至少得有以下字段
1、目标类型(后排,前排,血量最低,攻击最高,女性,男性,拿刀,拿剑,带步兵,战士,法师。)这里注意,某些目标类型,也许可以直接放在参数里。
2、目标个数:打几个
3、目标参数:比如我们要做一个双子BOSS,可能需要在参数处填目标ID。此参数可以需求的字段,比如职业,种族。这样就不需要在目标类型里加新的索敌类型了。
备注:如果你设计一个打后排带帽子的拿刀女性法师。那么你在其他表里肯定要有这些字段(女性、法师、拿刀等),所以设计的时候请注意。
八、技能触发规则
技能触发规则是战斗中极为重要的一点,可以说一个游戏战斗要做得有意思,除了从系统上改变和法术效果上做文章之外,就是技能触发规则了。
那么技能触发规则是啥呢?相信大家玩游戏都见过反击技能,被攻击之后反击,或者被暴击之后反击,或者闪避敌人攻击之后反击,这些技能可不单纯的是用于回合战斗游戏,也就是说 这个技能触发规则运用的范围是非常广的。下面举例触发点。
1、主动释放:怒气技能专用,触发后无概率计算
2、学习时触发:如被动技能,触发后无概率计算,加属性的话会在英雄属性面板显示。
3、生命值低于N%时触发:血量千分比,可设置概率,需要字段参数,填写千分比,需要配置有动作与无动作2种触发点
4、与谁一起上场时触发:可设置概率,需要字段参数配置英雄IP(用于羁绊技能)
5、死亡时触发:可设置概率
6、技能替换普攻触发:设置概率,替换普通攻击,参数填写替换技能ID
触发点设计得越多,游戏可设计的技能就越多,平衡性就更难做,程序就更忙。
一般技能配置表设定以下与触发点相关的字段
1、触发点类型(点触发点)
2、触发概率(填概率)
3、触发参数(比如和某英雄一起上场触发,填英雄ID)
文档写到这,一个放置回合卡牌的技能也就有模有样了,现在是不是觉得做战斗开始变得有意思了呢,大家心里是不是已经想了几十种技能触发点让游戏战斗更好玩了?比如某个技能在草地上才有用?比如某个技能在下雨时才有用?比如当我方上阵5个男性时,全体女性敌人攻击下降50%?
别急,我们还有法术效果等文档需要撰写,法术效果实在是多如繁星:变羊,变身,隐身,连击,无敌,召唤怪物,灵魂连接,时光回溯,各种法术效果配合技能触发点,就可以做出极具策略性的回合卡牌游戏。
当然,由于本文写的只是一般的常规的回合卡牌,所以可能游戏性的上限不高,要想提高上限需要从战斗规则逻辑上入手,那个另说了,这里只是简单介绍战斗文档撰写。
关于法术效果等文档如何写,写什么,将在下一篇文章介绍给大家。