GameRes游资网授权发布 文 / 易羌
游戏开发过程中,技能与技能之间的关系如何设计比较好?
我认为,技能体系的设计是一个由浅入深,循序渐进的过程。所以,从最基础的部分开始分析可能要更好一些。
技能的本质是什么,我认为,本质上技能是一系列改变角色/其他技能属性的方法。
要想设计一套完整的技能,首先必须了解你的角色都有哪些属性。
比如,最常见的也是目前最流行的一系列角色属性是,直接属性(直接反映在角色强度和角色行为上的属性,如生命值,魔法值,攻击力,防御力,攻击速度,移动速度,当前位置等)+间接属性(各种各样的人物属性,通常一个间接属性的改变对应着几个不同的直接属性的改变)。技能就是去改变自己或者对方的属性的过程。
我们可以把“普通攻击”也看成一个最基本的技能(实际上在有些游戏里它确实是一个技能,比如三国杀)。这个技能,本质上就是:减少敌人的生命值,减少量等于你的攻击力和目标防御力的差值。
当然,还有各种各样不同的属性结构,在这里就不展开讨论了,直接切入重点。
技能之间的关系,可以分为两种:
一种是,通过属性之间的互动来形成相生相克关系。
比如,你的技能能增加X点攻击力,我的技能增加X点防御力,你用了技能后攻击我和普通攻击我没什么两样,那你这个技能相当于就被我的技能废了,当然,我的这个技能也被你这个技能废了,这是互克的。
第二种关系则是,直接通过技能之间的互动来产生相互关系。
前面说了,角色有各种属性,一些基本技能就是去改变这些属性,而对每种属性的改变,我们可以认为是这个技能的属性,而与技能直接互动的技能,就是在改变指定技能的属性,某种意义上来说,有点类似于位移-速度-加速度之间的关系。
假如我们把普通攻击看成一个技能,根据之前的分析,这个技能有如下属性:
1.改变角色行为(进行攻击动作)
2.改变角色属性(减少对手的生命值)
3.减少量正相关值(你的攻击力)
4.减少量负相关值(对手的防御力)
根据这四点,我们就可以制作一系列和【普通攻击】这个技能互动的技能,比如说:
禁止改变角色行为 --> 禁止攻击
禁止改变角色属性 --> 闪避,格挡
使正相关值增加(但不改变角色攻击力这一属性) --> 攻击造成额外伤害。
去掉负相关值的关联 --> 无视防御
甚至,我们还可以再做出与这些互动的技能进行互动的技能,比如【闪避】--> 【无视闪避】
举个例子,比如有A、B、C、D四种不同功能的技能
当角色身上有A的时候
添加B,可以中断A
添加C,被A免疫,C添加不上
添加D,与A发生抵消,既A中断,D也加不上
添加新的A1,可能替换A,也可能与A叠加
buff的实质就是一个计时器,为了表示一些技能的持续型属性而添加的效果。
- A {
- 属性1 :添加一个buff,在buff持续期间 {
- 属性1-1 : 每隔X秒执行XXX(比如造成伤害)
- 关系1-1 : 不允许 C 执行
- 关系1-2 : 如果buff被 D 取消 禁止 D 的 属性1 执行
- }
- ...
- ...
- }
- B {
- 关系1 :立即取消 A 的 属性1 添加的buff
- ...
- ...
- }
- C {
- 属性1 : 执行XXX
- ...
- ...
- }
- D {
- 关系1 : 立即取消 A 的 属性1 添加的buff
- 属性1 : 添加一个buff,在buff持续期间 {
- 属性1-1 : 每隔X秒执行XX
- }
- }
复制代码
这就是所举例子中各种技能之间的关系。
所以,设计技能和技能之间的联系,并不是一开始就强行地去规定,我这个技能要和那个技能有什么联系,而是根据每个技能的技能属性,设计相关技能针对性的属性。只要你把你的游戏中角色属性和已有技能的技能属性理清了,设计相关技能是一件自然而然,水到渠成的事情。
我赞成前面有位答主所说的话,尽量减少强行给技能声明关系的做法,因为你一旦这么申明,你就不可避免的要在技能说明中显式地告诉玩家这些技能之间的关系。这样的声明过多,无疑会降低玩家对游戏的兴趣。应该尽量多通过属性来进行互动,或者是和一些最最基本的技能来进行互动(比如前面说的【普通攻击】),尽量将技能间的关系隐藏在文字后面,让玩家有兴趣去摸索技能间的关系。目前市面上某些火爆的游戏中(你懂的),甚至连开发者自己都不知道技能之间能够有多少联系和怎样的联系,他们是让玩家自己去发掘这些关系,然后通过玩家的尝试和反馈再来进行针对这些联系的修改。从而让游戏有了无数的变化,也就拥有了更多的生命力。