浅谈游戏中BUFF的设计要点
其实这类帖子并没有多少的设计理论,对于策划的提升和帮助也并不大,原因其实在于其适用性太窄,当我要设计XX象棋的时候,它就滚一边去了。
废话不多说切入正题:
游戏中的BUFF/DEBUFF我们见过很多,我见到的玩得比较泛滥的就属WAR3、魔兽世界、九阴真经、仿DOTA类的如LOL。
总体上来说,BUFF/DEBUFF都属于“临时的技能效果”,因此它们可以沿用绝大部分的技能逻辑对角色进行程序处理。
设计一个BUFF/DEBUFF机制,需要考虑这么几个要点
(没有需求,就没有设计的方向性指导,没有需求,功能再好,都是没有存在的必要的)
内部运算
1、是否包含技能效果?(提高/降低 攻击 命中 闪避 移动速度 群体伤害 替换技能ID 等 )
2、是否包含阶段效果?(BUFF分为多个阶段,不同的阶段有不同的效果,比如影之哀伤)
3、是否包含计时器?(持续时长计算、叠加时长计算 总之所有关于持续性时间的问题 都丢这里)
4、是否包含计数器?(用来计算阶段、剩余生效次数、比如影之哀伤 LOL电刀)
5、是否具备分类规则?(魔法效果 诅咒效果 中毒效果 用于进行归类 方便程序进行的 驱散筛选判断)
6、是否可以被驱散? (魔法效果只能用祛除魔法解除 中毒效果只能用解药祛除)
7、是否具备优先级?(附加优先级,低等级BUFF会被高等级BUFF替换,低等级BUFF无法附加给高等级怪)
8、是否保留母体信息?(比如传染性的DEBUFF,感染者传播一次,母体会获得额外巴拉巴拉。。。多个项)
9、是否共享同步规则?(比如多个角色共享一个BUFF状态,一个人的BUFF被祛除则其他人也被祛除)
10、以上功能可以进行再补充,没有需求则可以逐个剔除。
外部表现
1、是否显示BUFF图标?(传奇里道士的BUFF是不显示图标的)
2、是否不同阶段表现不同的图标?
3、是否显示计时器?
4、是否显示计数器?
5、是否显示BUFF文字说明?(对BUFF类型、效果的描述)
6、是否改变角色外形?(DNF里的冰冻、WOW里的变形)
7、以上表现功能可以进行再补充,同上。
设计一个新的BUFF机制后对其功能进行扩充,有时候无异于对整个技能模块的数据结构进行改写,所以更多的时候,我们通常用脚本去实现它,只让程序提供接口。
当一个策划在设计BUFF机制的过程中,务必先弄清楚自己需要的是什么,脑海里它的逻辑框架可以支持多大的扩容性(你懂的)。在设计这套技能机制的时候,务必要亲力亲为与程序部门紧密配合,而不可让程序员凭着自己的经验乱动。(程序员的通病,手里有活就闲不住,完全不顾及设计需求)
设计要点
BUFF对于玩家来说,其实是一个考验“辨认能力”的游戏玩法(我早期提出的游戏三类型)。比如“玩家A身体变红了,集火它可以造成额外伤害;玩家B身体变大了他要爆发了,请速度给其减速或打晕然后逃离他;玩家C感染了病毒全身发绿,应该远离他不要被传染”。
正是如此,所以在设计短时间的BUFF或DEBUFF的时候,应该遵循“该状态可以给玩家造成深刻印象”的原则,该大气表现的时候就该大气表现,技能效果要与外在形态形成正比。
而作为一个BUFF机制运用得比较泛滥的《九阴真经》来说,各种技能依赖BUFF叠加层数(计数器),而自己对自身状态的层数毫不知情,以至于玩家只好技能乱放,胡乱衔接,成了一大败笔。(输出表现力的重要性)
浅谈游戏中BUFF的设计要点的更多相关文章
- 浅谈游戏中BOSS设计的思路
对于大多数游戏来说,BOSS在其设计上都有着不可替代的作用,也是玩家印象最为深刻的一部分.近期自己也有在做BOSS的设计工作,有一些心得想要分享一下: 1.明确BOSS的设计目的 在设计之初,我们一定 ...
- 【Cocos2d-x游戏开发】浅谈游戏中的坐标系
无论是开发2D还是开发3D游戏,首先必须弄清楚坐标系的概念.在Cocos2d-x中,需要了解的有OpenGL坐标系.世界坐标系和节点坐标系. 1.UI坐标系 IOS/Android/Windows ...
- 论游戏中Buff的实现 [转]
论游戏中Buff的实现 分类: C/C++ 游戏开发2012-09-13 14:30 574人阅读 评论(6) 收藏 举报 c++游戏开发 源地址:http://blog.codingnow.com/ ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 【转载】浅谈游戏开发之2D手游工具
浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android 程序设计: 其它 编程语言: 引擎/SDK ...
- 【转】浅谈Java中的hashcode方法(这个demo可以多看看)
浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native i ...
- 浅谈Java中的final关键字
浅谈Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...
- 【转】浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int hashCode(); 根据这个 ...
- 浅谈HTTP中GET、POST用法以及它们的区别
浅谈HTTP中GET.POST用法以及它们的区别 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符.我们可以这样认为: 一 ...
随机推荐
- centOS 6.5命令方式配置静态IP
想自己做个centOS玩一下,然后通过FTP访问操作,首先查看是否开启了SSH,命令如下: rpm -qa | grep ssh 这个时候看到的是centOS的ssh已经打开!要是通过FTP工具访问还 ...
- windows默认TEMP环境
留着是为了等出问题的时候能找着改回来 Administrator 的用户变量 TEMP %USERPROFILE%\AppData\Local\Temp TMP %USERPRO ...
- [C/C++] 大小端存储问题
首先来看一下今天做的一道题: 解析: union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据 ...
- placeholder 颜色
/* placeholder颜色 */::-webkit-input-placeholder { /* WebKit browsers */color: #ccc;}:-moz-placeholder ...
- poj3074-Sodoku
解数独. 分析 考虑如何把数独解合法的条件转化为经典的01精确覆盖: 每个格子只能填一个数,1-9 每一列刚好填了1-9 每一行刚好填了1-9 每个九宫格刚好填了1-9 也就是说,每个格子,列,行,九 ...
- 【刷题】BZOJ 2179 FFT快速傅立叶
Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. Output 输出 ...
- 洛谷 CF1043F Make It One 解题报告
CF1043F Make It One 题意 从一堆数中选择最少的数,使它们的\(\gcd=1\) 输入输出格式 输入格式 第一行:一个正整数\(n\). 第二行:\(n\)个正整数,给出了这个数列. ...
- 爬虫实例——通过JS控制滚动条
案例 某位淘女郎的某个相册 有能力的童鞋可以先尝试一下爬取每张照片的链接. 我曾经尝试过几种方法,下面一一介绍: 第一种方法,采用requests和BeautifulSoup: import requ ...
- Magic FZU - 2280 无脑HASH暴力
Kim is a magician, he can use n kinds of magic, number from 1 to n. We use string Si to describe mag ...
- Javascript基本代码
简单的了解了javascript 的基本代码,感觉和c#中的语句差不多. <!DOCTYPE html> <html xmlns="http://www.w3.org/19 ...