Buff在游戏中无处不在,比如WOW、DOTA、LOL等等,这些精心设计的BUFF,让我们击节赞叹,沉迷其中。

问:BUFF的本质是什么?

BUFF 是对一项或多项数据进行瞬间或持续作用的集合。(持续的改变对象某些属性的效果)

问:设计BUFF的要点有哪些?

1:有用还是有害:

也就是我们常说的BUFF/DEBUFF,有可能我们有个技能可以驱散角色身上所有的Debuff(dota净化)

2:持续总时间:

指定时间段 或 无时间限制(在时间上面是永久的,比如Dota小小的变大)

3:作用间隔:

瞬间(传奇里面的太阳水),持续作用(传奇里面的红药)

4:作用属性:

Buff要影响对象的哪个属性?

5:单次作用量  或者 总作用量:

每次Buff触发时,作用于属性的增量值

或者指定总量,比如DOTA龙鹰的大招,指定范围内,总计造成1000伤害

1:更深入点讨论,我们可以得出要设计一个Buff体系,可能需要涵盖以下元素

1:使Buff趋于触发的元素(量变)

最简单的比如:计数器或者计时器

打个比方:LOL里面的电刀,触发之后,清零;然后重新开始计数,到100再触发;再比如某些累计点数之后,再触发的技能。

2:使Buff瞬间触发的元素(质变)

这个触发点非常之多,灵活混合使用,可以创造出很多不可思议的效果,我能想到的,按照Buff生命周期全部罗列到下面,供大家头脑风暴

1:Buff创建的时候

2:Buff持续作用时间内,每隔XX秒,被触发的时候(喝药、谜团的憎恨)。

3:载体攻击的时候(电刀)

4:载体被攻击的时候(刃甲,反弹伤害;传奇魔法盾,吸收伤害)

5:载体死亡之前(蛮王,6秒真男人,就死死不了)

6:载体死亡后 (LOL里面那个什么法师,死亡之后,尸体还可以继续攻击)

7:Buff消失时(Dota死亡领主的盾,破裂时将被攻击时吸收的的伤害反馈给范围内的玩家),再来个LOL里面的李青(天音波 Buff消失,回音击解锁)

3:叠加还是覆盖?

Dota里面蝙蝠的油大家知道吧?这个就是叠加。“叠了20层油,就切回基地把钱花光吧”

覆盖就很普遍了,基本上我们看到的技能都是这个,比如毒蛇的中毒,再中一次毒,就只是把剩余作用时间重置一遍;但是这里有个优先级还是要提下的,低优先级无法覆盖高优先级的

4:包容还是互斥?

乍一看和第3点容易搞混,最明显的区别是覆盖会减少buff的计数,互斥则不会。打个比方,Dota里面,月之骑士Luna的大招就是用到了这点,先来个技能介绍:

  以月亮之名,召唤10(12)道月光,随机选择周围的目标造成伤害。任何单一目标不会受到多于4(∞)道月光的打击。

  在0~4道月光的时候,是包容,4道以后就是互斥了;当我们装备了蓝杖的时候,将Buff由互斥改为包容,就可以实现蓝杖的效果了(12道全中还不死?)

5:施放者

Dota里面你最恨啥?沉默术士的沉默遗言肯定能上榜,在这个Buff里面死亡的玩家,会被沉默术士永久窃取一点智力。这样的需求,我们就需要记录Buff的施放者

6:不同阶段,不同惊喜

这个一时找不到合适的对象,就随便说个,比如有个技能开启之后根据计数器开始叠加层数,0~10层获得攻击力增加,10~20层对10%血量以下的怪物,造成一击必杀的效果(程序里可以造成9999999伤害,必死啊)

2:Buff的表现一定要明显

Buff一定要明显,比如LOL里面电刀就是有层数数字显示的,当累积到100时,我就知道,“哦,我可以给对面的小子狠狠的电一下了”

那么如果没有这个数字显示呢?“我掐着时间算着,好像累积到100了,该不该去试试呢?”,这个可能导致2个问题:1:没累积100,玩家没电到人,被人搞死 2:累积到了100,玩家不知道,导致产能浪费

再比如说Dota里面的黑皇杖,当我们看到一个又粗又大的英雄,冲入到我方法师阵营里面,肯定是一阵鸡飞狗跳,“那家伙开硬又黑了,兄弟们风紧扯呼”

如果没有变大模型这个提示呢?看到一个地方英雄冲了过来,我从1000套搞死他的方案里面挑选出了最凶残的方案NO1,结果技能点到对方身上,准备秀的飞起的时候,“无效选择对象”

拿LOL来说:(截图难找,各位看官请结合自身经验进行适量脑补)

喝药:角色身上旋转着一堆绿色的粒子特效,告诉我,角色的生命正在恢复中

蛮王6秒真男人:首先播放声效,然后蛮王身上冒出不明黄色液体,然后身上显示“不灭愤怒”4个字

BUFF对于玩家来说,其实是一个考验“辨认能力”的游戏玩法(我早期提出的游戏三类型)。比如“玩家A身体变红了,集火它可以造成额外伤害;玩家B身体变大了他要爆发了,请速度给其减速或打晕然后逃离他;玩家C感染了病毒全身发绿,应该远离他不要被传染”。

  正是如此,所以在设计短时间的BUFF或DEBUFF的时候,应该遵循“该状态可以给玩家造成深刻印象”的原则,该大气表现的时候就该大气表现,技能效果要与外在形态形成正比。

浅谈BUFF设计的更多相关文章

  1. [UWP]浅谈按钮设计

    一时兴起想谈谈UWP按钮的设计. 按钮是UI中最重要的元素之一,可能也是用得最多的交互元素.好的按钮设计可以有效提高用户体验,构造让人眼前一亮的UI.而且按钮通常不会影响布局,小小的按钮无论怎么改也不 ...

  2. 浅谈UI设计中妙用无穷的深色系背景

    英文:medium 译者:优设网 - 陈子木 链接:http://www.uisdc.com/ui-benefits-of-dark-background# --------------------- ...

  3. 浅谈API设计

    为什么需要了解一些API设计? 只要你编程,你就是API Designer 一个好的设计,模块之间的耦合应该也是API级别的 一个程序,如果你独立开发,那你既是API的Designer,也是API的U ...

  4. Redis系列六 - 浅谈如何设计秒杀系统

    前言 设计一个系统之前,我们肯定要先确认系统业务场景是怎样的,下面就以某电商平台上的秒杀活动为场景,一起来探讨一个秒杀系统改如何去设计. 场景 我们现在要卖100件纸尿布,按照系统的用户量及以往经验来 ...

  5. mybatis缓存源码分析之浅谈缓存设计

    本文是关于mybatis缓存模块设计的读后感,关于缓存的思考,关于mybatis的缓存源码详细分析在另一篇文章:https://www.cnblogs.com/gmt-hao/p/12448896.h ...

  6. 开源项目 PM 浅谈如何设计官网

      有用户反馈进入官网首页光秃秃的一片,大家忙着做产品,忽略了官网的建设,惭愧惭愧.   确实,极简风格和极其简单还是有很大区别的.     旧的 Web 端   除了极其简单之外,它还有一个小问题, ...

  7. 【WebApi系列】浅谈HTTP

    [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...

  8. 【WebApi系列】浅谈HTTP在WebApi开发中的运用

    WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...

  9. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

随机推荐

  1. BMP格式图像读取与存储

    全局变量: 1 #include "stdafx.h" #include <windows.h> /*BMP位图数据是4字节对齐*/ #define WIDTHBYTE ...

  2. poj2115 C Looooops

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29262   Accepted: 8441 Descr ...

  3. jdk1.5后枚举类的定义规则

    转: http://blog.csdn.net/willcold/article/details/12844487  JDK1.5 新增的enum关键字用于定义枚举类             枚举类也 ...

  4. 再谈System.arraycopy和Arrays.copyOf

    之前转载过一篇博文,介绍过这两个方法,今天想要再次详细的了解一下. public static native void arraycopy(Object src, int srcPos, Object ...

  5. Android开发大纲

    知识模块 Java Android 计算机网络 算法 书本知识 深入理解Java虚拟机 Java并发编程实战 疯狂Android讲义 Android开发艺术探索 网络知识 面试经验 面试心得与总结-- ...

  6. codeblocks 设置代码自动补全

    熟悉使用一些开发类IDE的朋友对代码自动补全一定印象深刻,如Visual studio,eclipse等,我们在程序中定义的那一个个超长的变量函数名只需打出几个字母就可自动补全,但是在codebloc ...

  7. [php]数组建立方式

    1.$a[0]=..; $a[1]=..; $a[2]=..; $a[3]=..; 2.$a=array(1,2,3,4,5); 3.自定义数组 $a['logo']="qq"; ...

  8. Spring websocket浏览器连接时出现404错误

    1.场景 在用websocket做一个简单的数据导入页面同步显示后台进度功能的时候,浏览器出现连接不上的错误: WebSocket connection to 'ws://localhost:8080 ...

  9. AngularJs几种服务区别

    下面说说这几种函数之间的区别: 函数 定义 适合场景 provider(name, Object OR constructor() ) 一个可配置的.有复杂逻辑的服务.如果你传递了一个对象,那么它应该 ...

  10. 【BZOJ 1001】[BJOI2006]狼抓兔子(最大流)

    题目链接 最大流裸题,没什么好说吧,恰好点数多,考验网络流的效率,正好练\(Dinic\). #include <cstdio> #include <queue> #inclu ...