hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 760|回复: 5

【数值框架】战斗公式:伤害公式选择

[复制链接]

557

主题

557

帖子

1898

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1898
发表于 2023-12-7 04:31:32 | 显示全部楼层 |阅读模式
还是之前一贯的风格,一次只讲一件事,讲明白了也好啊,这次就说伤害公式的选择。


【减法公式】伤害=攻击[攻]-防御[守]

【乘法公式】伤害=攻击[攻]×(1-免伤[守])   


伤害公式的选择


关于减法公式的优点只需要记住一点,这也是唯一的优点——理解成本低

别看只有这一个优点,却至关重要,理解成本的高低直接决定了属性策略的门槛高低。

在伤害公式的选择上,我个人会优先考虑减法公式,只有在数值环境较为复杂的情况下才会使用乘法公式。

我将伤害公式的应用环境分为了3类:1.明确减法环境 2.明确乘法环境 3.灵活选择环境


一、明确减法环境

在以下游戏类型中,直接选用减法公式即可:


1.游戏策略对属性计算要求比较高的游戏类型,明确使用减法公式。

    以战棋、集换式卡牌类为主:这类游戏对属性计算要求比较高,所以降低计算成本是重中之重。
【举例1】战棋:火焰纹章

    亚洲人的数学水平虽然比较高,但是为了迎合欧美市场尽量让数值小一些为简化计算甚至增加了数值变化的显示






【举例2】集换式卡牌:游戏王

    这类游戏需要为移植桌游做准备,甚至是从桌游移植过来的,所以数值要小,或者尽量是整数。






2.偏休闲的游戏类型,明确使用减法公式。

    这类用户偏休闲,玩游戏只是为了打发时间,所以能投入的注意力有限,在玩法策略层面就不要选择"算数"这种枯燥的策略了。这里要特殊说明一下,休闲类的游戏如果可以,最好连防御属性都不要有,如果必须有,也尽量使用减法公式,以减轻玩家的理解负担。

二、明确乘法环境

减法公式本身还是有一定的局限性,在以下情况中,明确不能用使用减法公式,只能使用乘法公式:


1.战斗模型存在数量差异的游戏类型

    以RTS、SLG为主:在这类游戏中,存在战力差异较大的战斗单位模型,如使用减法公式会出现防御收益混乱的问题。
【举例】SLG:剑与家园





    战力差异较大:1个龙龟为1个编组,8个火箭炮同样组成一个编组,1个龙龟的属性是1个火箭炮的n倍。
【解释】防御收益混乱

    这是由于在减法公式中防御[己]的收益由攻击[敌]决定,当场上存在攻击100和1000两个单位时,防御面对这两个单位的收益是完全不一样的。鉴于有很多新人,在这里我就费一些时间,把减法公式的防御收益详细的从头推导一遍,如果已经了解的可以直接跳过这部分。

【推导】减法公式防御收益推导

1.定义函数

属性:血量(HP)、攻击(ATK)、防御(DEF)、攻击速度(AS)固定为1秒攻击1次

计算用量:有效血量(EHP)、每秒有效输出(DPS)

2.推导计算战力

    这里要多说一嘴,战力分为两种:1.计算战力 2.显示战力
      计算战力:是策划计算的时候使用的,用于衡量在标准情况下双方的胜负情况。显示战力:是显示给玩家的,主要衡量养成水平,顺便体现胜负概率,这个后面会开章节专门讲。
    胜利条件:击杀时间<被击杀时间
      击杀时间 = EHP[敌]/DPS[己]被击杀时间 = EHP[己]/DPS[敌]EHP[敌]/DPS[己] < EHP[己]/DPS[敌]  →  EHP[敌]×DPS[敌] < EHP[己]×DPS[己]只要EHP[己]×DPS[己]大于敌方就会获得胜利,所以以此做为计算战力
    计算战力 = EHP[己]×DPS[己]
      DPS[己] = ATK[己]EHP[己] = HP[己]/(1-免伤率[己])=HP[己]/(1-DEF[己]/ATK[敌])计算战力 = (ATK[己]×HP[己])/(1-DEF[己]/ATK[敌])
    所以在减法公式中,免伤是由己方的DEF和敌方的ATK共同算出来的,所以在防御一定的情况下,收益会随敌方的ATK变动而变动

【举例】假设:ATK[己]=100、HP[己]=1000、DEF[己]=50

    由图可知,当ATK[敌]越大时,己方的计算战力越低。




2.长大深度较深且对GVG平衡要求比较高的游戏类型

    以MMORPG为主:
      GVG平衡:团队竞技时希望每个玩家都能发挥一定的作用,但是在减法公式下低战力玩家的价值会被进一步缩减,原理同上职业模型:减法公式下职业模型搭建更具困难,这源于MMO游戏的深度养成,绝大多数情况下都并非标准模型战斗,就会导致模型收益混乱的问题

【举例】魔兽世界





3.对自由养成要求比较高的游戏类型

    自由养成过多就会破坏减法公式中的模型属性比例,导致模型被破坏。对于单机游戏来说其实还好,不存在玩家之间比较的平衡问题,但是网络游戏就要慎重考虑了。
  PS(自由养成):玩家可以选择镶嵌全身攻击宝石或者防御宝石,而不是特性位置只能镶嵌指定宝石,这类养成统称为自由养成。


【举例】王者荣耀

    在MOBA类游戏中玩家可以选择性出攻击装备或者防御装备,为了保证属性的收益稳定,显然乘法公式更适合这类游戏




三、灵活选择环境

    除去以上两种应用环境,剩下的情况建议优先选择减法公式,毕竟相较之下理解更为容易当然,如果自身对乘法公式更为熟悉,选择乘法也不是不可以,灵活选择即可

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

948

主题

1162

帖子

3655

积分

超级版主

Rank: 8Rank: 8

积分
3655

论坛头条论坛元老谋士数据帝优秀版主超级版主见习版主论坛版主

发表于 2023-12-7 04:32:20 | 显示全部楼层
首先你得把战斗地图大小说出来吧,要不然这移动力完全是废的。
弓兵的攻击距离又是多少呢?要不这远程也是废的。
骑兵攻击后移动有没有衰减?没有衰减这岂不是无敌骑兵?
重骑兵和轻骑兵一样移动速度,要轻骑兵干什么?
如果用减法公式,你这重骑兵盾兵都无敌破不了防,所以你这个数值只能用乘法
用乘法纳尼就得规定一个标准战力,也就是步兵,将他的战力作为1,其他兵种能打几个步兵,战力就是几
你这里还没有表述是回合制交替扣血还是双方同步扣血,问题很大啊
回复

使用道具 举报

0

主题

177

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2023-12-7 04:32:58 | 显示全部楼层
帮助很大,谢谢
回复

使用道具 举报

0

主题

184

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-12-7 04:33:48 | 显示全部楼层
EHP[己] = HP[己]/(1-免伤率[己])=HP[己]/(1-DEF[己]/ATK[敌])
假设DEF[己]=1000,ATK[敌]=1,则(1-DEF[己]/ATK[敌])= -999
EHP[己] =HP[己]/(-999)<0
额。。。似乎哪里不对?
回复

使用道具 举报

0

主题

194

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-12-7 04:34:02 | 显示全部楼层
这个就是减法公式的弊端,差距过大时会出现不破防的情况
回复

使用道具 举报

0

主题

179

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-12-7 04:34:58 | 显示全部楼层
新手策划求指点,看了您的公式后,虽然恍然大悟,但依旧觉得掌握不了只是五个单位的数值设计。希望您能指点一下

1、步兵
护甲值90  基础杀伤力110  溃散阈值30%  战意值110%  移动力2  每部人数上限1000
2、轻骑兵
护甲值100  基础近战杀伤力110  基础远程攻击力80  溃散阈值30%  战意值110%    移动力4  每部人数上限1000  攻击后可移动
3、重骑兵
护甲值200  基础近战杀伤力200  基础远程攻击力80  溃散阈值30%  战意值120%    移动力4  每部人数上限600  攻击后可移动
4、盾兵
护甲值200  基础近战杀伤力60  基础远程攻击力80  溃散阈值30%  战意值120%    移动力1  每部人数上限100  
5、弓箭手
护甲值50  基础近战杀伤力30  基础远程攻击力110  溃散阈值30%  战意值110%    移动力2  每部人数上限1000  

临战杀伤力=基础杀伤力*战意值


这么多数据,我该从哪里下手?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-12-22 12:11 , Processed in 0.062917 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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