游戏开发论坛

 找回密码
 立即注册
搜索
查看: 17806|回复: 32

[原创] 耗蓝怎么建模?

[复制链接]

19

主题

197

帖子

1171

积分

金牌会员

实干兴邦,空谈误国

Rank: 6Rank: 6

积分
1171
发表于 2013-11-26 19:52:37 | 显示全部楼层 |阅读模式
本帖最后由 smallcorpse 于 2013-11-26 20:20 编辑

      在翻huori旧帖子的时候发现了这么一篇《伸手党二次逆袭,数值模型的几个问题》,里面有一个问题是 “四:耗蓝怎么建模?现在是以HP为基准点,算出各自职业的技能所占的点数后,我用初始百分比算的,但我感觉这很不靠谱。”

      在回复中很多人都对此问题发表了看法,我觉得很有启发,正好自己曾经做过类似的建模,经过修改后发上来让大家斧正了。

正文:

      1,前提;
          前提指的是此模型需要在何种条件下才能成立。
      战斗人物拥有HP,MP。所有动作均耗费MP(也就是不存在不耗蓝的普通攻击,用于简化模型)。战斗人物的动作可以直接作用在目标上,不考虑距离因素(同样为了简化模型)。所有动作均在战斗后进行。

      2,定义;
      动作分类:
          动作分类指的是战斗人物可以进行的动作分类。
      单个目标伤害:直接对单个目标产生伤害的动作。
      多个目标伤害:直接对多个目标产生伤害的动作。
      单个目标削弱:对单个目标的战斗力进行削弱的动作,拥有持续时间。(可以用debuff理解)
      多个目标削弱:对多个目标的战斗力进行削弱的动作,拥有持续时间。
      个人状态维持:对单个目标增加削弱抗性或者清除掉已添加的削弱状态的动作,抗性拥有持续时间。
      团队状态维持:对多个目标增加削弱抗性或者清除掉已添加的削弱状态的动作,抗性拥有持续时间。
      个人状态增强:对单个目标的战斗力进行增强的动作,拥有持续时间。
      团队状态增强:对多个目标的战斗力进行增强的动作,拥有持续时间。
      个人血量回复*:暂不考虑。(简化模型)
      团队血量回复*:暂不考虑。
      


      单位血量(单位伤害),单位蓝量;
          一次普通单纯伤害技能对一个无防御减免伤害的单位消耗的血量称为单位血量,此普通单纯伤害技能所耗的蓝量为单位蓝量。


      3,基础模型;
      为了方便了解,先用具体数值进行举例:每个战斗单位均拥有20单位血量,30单位蓝量。也就是说在1v1情况下。战斗单位有20单位的蓝量用于正确的造成伤害,10单位的蓝量用于失误或者与对方博弈。而这20单位的正确伤害蓝量是目标伤害、目标削弱、状态增强联合运用的。比如我手上有5单位的蓝量,1单位用于目标伤害动作,2单位用于目标削弱,2单位用于状态增强。最后打出来的伤害是5单位血量。

      以上拍脑袋的数值肯定是行不通的,因为我好不容易做了这么多步,冒了这么多风险,降低了这么多期望(按照所有可能出现的情况等概率计算),最后的结果竟然和我单纯用5次目标伤害所造成的血量一样,这不能忍。

      然后我们还差一维标准量,我们称之为“轮”(可以理解成回合,但是这个模型可以建立在即时战斗上),比如我们定义3秒为一轮,那么我进行了一个单体目标削弱行为消耗了一轮时间,进行了单体的状态增强行为消耗了一轮时间,对目标伤害消耗了一轮时间,也就是说我执行这三步操作一共消耗了3轮时间。


      那么在一轮内对对方造成的伤害,就是我们熟知的广义DPS了。


      首先是“目标伤害”行为,我们要考虑它的伤害量和消耗轮数。例如某个目标伤害行为会在两轮时间内造成3单位血量的减少。那么,我们计算他的蓝耗要考虑这个行为是否有可能在第一轮被打断或者第二轮被打断或者顺利的被释放了出来。那么他顺利释放的期望为:0*1/3 +0*1/3+1*1/3 = 1/3。也就是说一般来说造成3单位血量伤害的技能需要三单位蓝量,但是由于期望的减小,使得蓝耗相应减少,也就是此技能蓝耗为3*1/3 = 1单位蓝量。


      然后是“目标削弱”行为,我们可以把这个行为看作“蓄力”,也就是说先将蓝量消耗掉,用于后续的目标伤害技能打出更高额的伤害。当然这个行为是有持续时间的,我们假设某个目标削弱行为会在接下来的4轮时间内对下一次的伤害提升一个单位血量。那么这个行为有可能被触发了4次(每轮都触发),3次,2次,1次,和0次。那么这个行为的期望为:4*1/5+3*1/5+2*1/5+1*1/5+0*1/5 = 2 。那么这个行为能够对对方造成的单位血量伤害期望就为:2*1 = 2 。那么这个技能的蓝耗就为2。


      同理可以推算出状态增强行为,不再赘述。


      “状态维持”行为由于分为两种模式,添加抗性与“目标削弱”行为“状态增强”行为的计算方式类似。清除掉削弱状态与“目标伤害”行为的计算方式类似,再此也不赘述,只是额外的将对目标造成单位血量伤害变成豁免自己受到的单位血量伤害。
      不过“状态维持”这类行为我个人觉得还是有待商榷,总觉得有什么不对劲儿但是说不出来。

      以上都是对单个目标进行计算。对多个目标进行计算的时候只需要按照单个目标的蓝耗进行扩展。按照作用人数的期望进行增加蓝耗。

      假设某个游戏设定一般都是5人一个小队,一般而言技能的效果都是会对1,2,3,4,5个人作用。那么这个技能的作用人数期望为:1*1/5+2*1/5+3*1/5+4*1/5+5*1/5 = 3 。那么这个技能耗蓝就要在基础蓝耗上*3。


      当然,实际制作的时候会有混合类型行为的技能出现,比如在造成伤害的同时削弱目标。此时就要按技能内行为的比例进行蓝耗的的分配。比如某个技能不可被打断在一轮内对目标造成一单位血量伤害同时削弱目标,在4轮内提升一个单位血量伤害。那么他的蓝耗就为1+2 = 3 。不过有些细节需要注意,是造成伤害在前还是削弱目标在前。我倾向于如果差距不是太大的话,拍脑袋就好了……增加游戏乐趣嘛。


      以上就是对蓝耗的一个建模,说是建模,其实就是对整体的蓝耗定一个基准,并对所有可能发生的情况进行期望分析以他的期望去确定蓝量。那么在概率上这个耗蓝模型就是成立的了。那么在玩家博弈的时候,谁的概率落在高于期望值得行为上,那么他就会产生优势。这就可以形成一个正当的竞技行为了。


      如果有任何疑问或者质疑,欢迎指出讨论。


      谢谢收看,我们再见。
      补充一下……在huori那个原帖中有个回复说得很在理:

      “1、依然是pve方面,法系职业多久耗空mp,取决于你的pve战斗时间有多长、游戏卖不卖蓝药、药水的CD等等……
      2、pvp方面,相对要严谨些,不要搞的大家可以无穷无尽的战斗,一般pk时间控制在3分钟即可,太长容易让人厌倦,太短则毫无趣味可言。”

      蓝量总额是为了控制一场战斗的时长,其中包含有效蓝量和无效蓝量。有效蓝量指的是能够对目标产生相应血量伤害所消耗的蓝量。其中还需要考虑是否有蓝量补充的问题。

      所以为了简化模型,我并没有对“补充蓝量”和“补充血量”进行建模……是因为加进去的话感觉就太麻烦了……希望有心人能够归纳总结……
ps:
      其实还有一个问题没有考虑到,比如有个技能是在两轮时间内直接对目标造成1单位血量伤害。另一个技能是在一轮时间内直接对目标造成1单位血量伤害。如果放在以上模型中,这两个技能蓝耗竟然是一样的……这个肯定不能忍。如何把这个维度考虑进去,就交由给位解决了。我倾向于耗蓝/轮数。


      


        








98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-11-27 00:09:24 | 显示全部楼层
盖伦看完这贴笑了,哥哥我的技能不耗蓝,是建模的脑子进水了,哦不,咱LoL没这个模……

19

主题

197

帖子

1171

积分

金牌会员

实干兴邦,空谈误国

Rank: 6Rank: 6

积分
1171
 楼主| 发表于 2013-11-27 08:06:31 来自手机 | 显示全部楼层
猴与花果山 发表于 2013-11-27 00:09
盖伦看完这贴笑了,哥哥我的技能不耗蓝,是建模的脑子进水了,哦不,咱LoL没这个模…… ...

看前提,lol中不需要蓝条的英雄均比较强,在本文中未讨论这一点,如果要额外的增加一条不需要蓝条与能量条怒气条建模。请提出宝贵意见。

98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-11-27 09:07:07 | 显示全部楼层
smallcorpse 发表于 2013-11-27 08:06
看前提,lol中不需要蓝条的英雄均比较强,在本文中未讨论这一点,如果要额外的增加一条不需要蓝条与能量 ...

你的思路被限制在技能的效果影响消耗上了,其实硬要绕嘴皮子,的确可以说成技能的效果和耗蓝是有关的,事实上设计耗兰的思路也的确是为了外加一钟资源限制使用技能。但关键是你没法给所有游戏中的设定去估价,因为技能的花头太多了。

19

主题

197

帖子

1171

积分

金牌会员

实干兴邦,空谈误国

Rank: 6Rank: 6

积分
1171
 楼主| 发表于 2013-11-27 09:23:50 | 显示全部楼层
猴与花果山 发表于 2013-11-27 09:07
你的思路被限制在技能的效果影响消耗上了,其实硬要绕嘴皮子,的确可以说成技能的效果和耗蓝是有关的,事 ...

说得不错,“资源限制使用技能”这个观点我十分赞同,但是有一点,多元化的资源势必会出现资源间的等价换算问题。那么这个复杂度会成指数情况增长。

当然也可以一步一步拍脑袋填数值的方式去测试平衡,不过坏处是可能会把脑袋拍肿。

此文虽然只谈了基础的HP/MP技能耗蓝模型,其实也给出了用期望去确定多个可能情况的理论给定数值,减少了拍脑袋的次数。

如果要增加多资源限制,也就是每个资源都按照可能出现的各种方式进行期望分析。

98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-11-27 09:35:37 | 显示全部楼层
smallcorpse 发表于 2013-11-27 09:23
说得不错,“资源限制使用技能”这个观点我十分赞同,但是有一点,多元化的资源势必会出现资源间的等价换 ...

“战斗所有人物都有HP\MP”这个不是拍脑袋的结果?能告诉我为什么要这么设计吗?激战2没有MP等资源概念,仿WoW的,是不是他们脑袋拍肿了所以干脆不设计了免得拍坏?

19

主题

197

帖子

1171

积分

金牌会员

实干兴邦,空谈误国

Rank: 6Rank: 6

积分
1171
 楼主| 发表于 2013-11-27 09:43:43 | 显示全部楼层
猴与花果山 发表于 2013-11-27 09:35
“战斗所有人物都有HP\MP”这个不是拍脑袋的结果?能告诉我为什么要这么设计吗?激战2没有MP等资源概念, ...

为什么要这么设计?

1,HP指的是战斗对象能够承受对方多少次伤害的一个值。所有单位均会有类似设定,魂斗罗、坦克大战等都是一滴血,承受对方一次伤害就被炸上天;

2,MP指的是在一场战斗中,可以用的动作集合数用量化的方式表现,用于控制整体战斗长度,控制策略复杂度。激战2是如何控制一场战斗的长度的?无尽的厮杀?

0

主题

69

帖子

292

积分

版主

Rank: 7Rank: 7Rank: 7

积分
292
发表于 2013-11-27 10:15:31 | 显示全部楼层
激战2有CD啊,激战2打起来死的非常快,又没有成吨的治疗量,加上濒死机制,就形成了一套独特的玩法了

0

主题

185

帖子

728

积分

高级会员

Rank: 4

积分
728
发表于 2013-11-27 11:02:33 | 显示全部楼层
动作分类还可以系统化:
①定义一个目标字段。单体、多人、群体,我方、敌方,这些都由这个字段来描述。
②定义一个持续时间的字段。比如“两轮时间内直接对目标造成1单位血量伤害”这类的效果,就可以用这个字段来描述。
这样定义的好处是,在我们分析问题的时候,能更清晰、系统地考虑每一个及所有情况。

计算过程,我表示没有看明白……

一、假设
“每个战斗单位均拥有20单位血量,30单位蓝量。也就是说在1v1情况下。战斗单位有20单位的蓝量用于正确的造成伤害,10单位的蓝量用于失误或者与对方博弈。”

这段文字的描述,是基于“基础伤害消耗:1单位血量对应的消耗为1单位蓝量”和“蓝量的消耗除了用于基础伤害消耗,还存在失误、博弈、时间修正、技能伤害修正等修正类消耗”这两条假设的吧?

二、“轮”
“轮”的定义也不是很清楚:一轮是指每进行一个动作所假设的对应时间吗?

三、“目标伤害”行为
“某个目标伤害行为会在两轮时间内造成3单位血量的减少”

这段话描述的是什么情况,也不是很清楚:是说“某个目标伤害行为是‘持续施法’类的动作”,还是说“该行为的效果为两轮时间内持续伤害,总伤害为3单位血量”?

因此,随后的“打断”和“顺利施放”的定义又是什么?对于蓝耗来说,“打断”和“顺利施放”的效果又是什么?
总结这两个问题,我是想问:“打断”和“顺利施放”对应的血量和蓝量的变化是如何定义的?

因为这里没弄清楚,所以本段后面的期望计算完全看不懂……

四、“目标削弱”行为
“我们假设某个目标削弱行为会在接下来的4轮时间内对下一次的伤害提升一个单位血量”

不知道我有没有理解错这段话:
“提升一个单位血量”是特指该行为的,类似的“目标削弱”行为的效果可能不同(比如提升两个或者三个单位血量)——即本类行为的通式为“……N轮……伤害提升M单位血量(可进行无上限的叠加)”;
持续时间为直到下一次攻击或持续4轮(两者中取较短时间)。

同样的,“这个行为有可能被触发了4次”的蓝量消耗是如何定义的?

五、概率
看不懂“目标伤害”行为和“目标削弱”行为的期望计算的另一个原因,是对于其中的概率取值的依据不清楚:“0*1/3 +0*1/3+1*1/3 = 1/3”和“4*1/5+3*1/5+2*1/5+1*1/5+0*1/5 = 2 ”中的1/3和1/5是怎么来的?

六、混合类型行为
作用先后的顺序需要先假设。造成伤害在前还是削弱目标在前,并不是关注重点,在没有头绪之前,随便假设造成伤害在前或者削弱目标在前都是可以的,不过,这步假设对于建模来说不可缺少。

七、持续伤害与一次性伤害
“有个技能是在两轮时间内直接对目标造成1单位血量伤害。另一个技能是在一轮时间内直接对目标造成1单位血量伤害”

这两者的异同:

①两者的期望是相同的。因此,两者本质上是没有区别的。

②持续类伤害是否可被取消(比如被驱散),以及持续伤害的作用时机与“驱散”类动作的作用时机,这些都会使得一次性伤害和持续伤害的差异变大。

③如果两者伤害相同且都恰好能致死,那么两者区别为:受到一次性伤害的一方比受到持续伤害的一方能存活更久的时间。在这段时间内,受到持续伤害的单位还能进行各种动作。
即受到持续伤害比受到一次性伤害的一方多出(持续轮数-1)次(或持续轮数次,这取决于持续伤害的作用时机)施放动作的机会。如果考虑血量恢复,那么这个差异就更大。

目前我所能想到的差异为以上两点。蓝耗的修正,通常也是针对两者的差异而进行的。不过,具体的修正公式得视其他方面的设定影响,比如之前所提的“驱散”类、“血量恢复”类的动作都会对修正公式影响很大。


最后,我没明白这个蓝耗模型的意义所在。是为了确定技能的蓝耗而做的定量分析模型吗?

98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-11-27 11:09:22 | 显示全部楼层
smallcorpse 发表于 2013-11-27 09:43
为什么要这么设计?

1,HP指的是战斗对象能够承受对方多少次伤害的一个值。所有单位均会有类似设定,魂 ...

激战2还真的挺长不假,我印象最深的是里面有一些世界事件,我跟很多不认识的人一起去一个水下的迷宫,最后击败一个Boss拿到了宝箱,总共1个小时多,大家一起解谜和战斗。
激战2不是重点,重点是你的MP设计本身存在问题,如果你需要资源去限制技能的使用,那么你应该首先思考这个游戏是否真的需要MP这个概念作为资源,这得从MP最早的定义说起:
最早的MP是为主角能够做一些不太平常的动作,但是又要受到一些限制,这些限制不是消耗品,但又有消耗品的感觉,每次回村睡觉存盘可以恢复(勇者斗恶龙1),所以MP的来源实际上是一种“达到一定情况就可以恢复的资源”,符合这个定义的还有现在LoL里面一个被俗称为“眼石”的装备,带着他可以插4发眼(覆盖等设计不在此讨论,你可以自己去玩下),4发用完要回家补充,这个其实就是MP的概念,只是表现形式不同。
在早期的火纹中,除了一作外传采用消耗Hp释放魔法被玩家不叫好外,其他设计都是传统的,武器带有子弹限制,武器中包括魔法书,这是平衡的,而子弹量就成了这个MP的设计,只是子弹更接近于消耗品的概念。
事实上我们定义的MP也好能量也好,是一种临时的限制资源,去给技能的使用产生一些限制没错,但是为什么要产生这些限制?
1,限制本身必须有意义,我可不可以理解为KOF每个角色有10000MP,每个动作消耗1MP,每秒恢复5000MP?这样KOF使用技能动作是否就受到限制了?没有,所以MP对于KOF来说是毫无意义的,如果从这个角度出发说,没错。
2,为什么最终幻想的某些职业有MP?因为普通攻击时每个职业的基本功能,所以战士这样的职业是不需要MP的,而法师的普通攻击较弱,他有一些强过普通攻击(无论伤害还是其他效果)很多的打法,为了不让用户范用,所以引入了MP作为资源限制,说穿了是因为没有CD。
3,有人说WoW、LoL等游戏既有CD又有MP感觉挺好,事实上这是成功论作怪,你自己理性的分析,这些游戏加入MP的目的是什么?如果目的和你说的一样的话,为什么后来的设计中又有那么多抛弃了MP的东西存在,WoW的DK、LoL的瑞文?
激战2不采用MP是有道理的,因为他已经设计了CD限制,并不是说有CD就不能设计MP了,只是你很难设计好,尤其是你这样固化思维了要用所谓的模型去做这个设计的时候,你是没法设计这个东西的,因为感觉不对了。游戏设计很多时候还是很浪漫的,用模型推出来一个数字是17,但我们会把它变成15、20或者18,因为看起来更浪漫,有时候不需要原因,除非它的工作产生了巨大的问题,而工作产生问题的验证来源于实践。
那么是不是说建模工作在游戏制作中不需要?不是,很多你看不见的设计是需要建模的,比如滑雪大冒险的加速、下落等等等等。而这些看得见的东西,尤其是一些消耗资源,根本不需要自作聪明去建模,至少我参与过的很多项目,最早我也聪明的提出建模,可最后项目结果是根本不去用,原因有2:
1,数字看起来不是很浪漫。
2,限制了所有其他策划的发挥。
如果你一定要我一下拍死你的想法而不是这么委婉的话,那请你设计出为什么LOL的眼石插眼是4次而不是6次或者3次,大眼石为什么是5次,不是7次或者11次?no idea,这就是设计的浪漫。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-24 13:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表