游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9489|回复: 10

[原创] 战斗力公式的推演

[复制链接]

1

主题

5

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2015-10-14 14:24:47 | 显示全部楼层 |阅读模式
   对于一个标准的RPG战斗过程,是基于以下两个公式做控制的:

1.png

   1)是职业平衡公式,其中eP是有效战斗力, eHp表示有效生命值,eDps表示有效dps

   2)是节奏平衡公式,T表示有效战斗回合。

   基于上面两个公式,我们需要把战斗力用另外一个线性公式来表出,这里的FP是战斗力值,与eP是同一个意思,但是前者是相对值,后者是绝对值。

   根据(1)式可以改写为:

2.png

   可以看出:

3.png

   FPeP固定的情况下,对应eHp为变量的函数,存在最小值:

4.png

    5.png 时取得。

   这就告诉我们,对于真实的战力如果用线性函数来模拟的话,肯定会存在一个最小值,也即是说:在线性战力情况下,有一个线性战力低的人真实战力会高出线性战力比他高的人。
   要避免这种情况发生的唯一充要条件是, 6.png

   这也即是告诉我们在设计英雄(怪物)的时候,尽量不要设计有效生命很低的人,同时也不要设计有效Dps特别高的人。

   对于职业平衡公式来说,eP其实和FP是等价的两个值,因为eP大的一方,我们也希望FP大,反之也亦然,也即是 7.png ,于是eP也有另一种表法:

8.png

  显然根据偏微分方程的逼近原理得知:

9.png

   任意的属性对应的价值就是(Hp为例):

10.png

  所以这种计算方法肯定是有误差的,误差的数量级为 11.png

   于是我们得到线性公式各参数的表法:

12.png

    13.png 为各项属性对应的价值, 14.png 为对于的各项属性。欢迎大家批评指正。

5

主题

101

帖子

1723

积分

金牌会员

Rank: 6Rank: 6

积分
1723
发表于 2015-10-14 19:34:10 | 显示全部楼层
本帖最后由 BeerRabbit 于 2015-10-14 19:40 编辑

似乎都是显而易见的,只不过用了一些(看似)规范的表达


(绝对)乘法公式框架下,真实的战斗力是可以计算的,且是绝对的,完全由自己的属性表达出来。其实如果换个写法,这个战斗力就是各种潜层面上各种属性“效果”的乘积;而LZ所说的那个FP,是业内一些产品使用的(近似)表达,或者说是属性“效果”的和。一个乘积,一个和,固定其中任意一个,另一个的值域特点也就显而易见了。

3

主题

20

帖子

187

积分

注册会员

Rank: 2

积分
187
发表于 2015-10-14 21:28:34 | 显示全部楼层
我只想问楼主,那么多公式小图片,是一个个上传的吗,会不会很累啊

0

主题

20

帖子

549

积分

高级会员

Rank: 4

积分
549
发表于 2015-10-15 10:27:32 | 显示全部楼层
是否存在绝对战斗力要看伤害模型的,也不是用乘法公式就会有绝对战力,要看减伤比和伤害加成的比例是否与对手的属性有关

1

主题

5

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2015-10-15 14:57:13 | 显示全部楼层
BeerRabbit 发表于 2015-10-14 19:34
似乎都是显而易见的,只不过用了一些(看似)规范的表达

好专业的评论,学习了。

1

主题

5

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2015-10-15 14:58:42 | 显示全部楼层
gl8531 发表于 2015-10-15 10:27
是否存在绝对战斗力要看伤害模型的,也不是用乘法公式就会有绝对战力,要看减伤比和伤害加成的比例是否与对 ...

学习了~

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
发表于 2015-10-16 08:14:28 | 显示全部楼层
我想知道“相对战斗力”是什么。另外,由(1)如何推导出(3)的。(3)这个公式是什么含义?(3)这个公式是为了解决什么问题的?

0

主题

21

帖子

305

积分

中级会员

Rank: 3Rank: 3

积分
305
发表于 2015-10-16 11:27:37 | 显示全部楼层
即使乘法公式下,也几乎没有任何完美的绝对战斗力计算方式,属性类型大概可以分为3类

第一类:绝对战斗力属性类
主要包括:当次攻击类型值,当次防御类型值,命中/闪避/格挡/偏斜、生命值、攻击速度/基础攻击间隔、暴击/暴伤、CD、等级

注:以上属性在部分乘法公式的模型中,是可以获得绝对战斗力(即准确/真实体现战斗能力)的价值的

第二类:等价战斗力属性类
吸血/吸蓝、反伤

注:以上属性在部分乘法公式的模型中,是可以获得近似战斗力(即不准确,但是相对公平)的价值的

第三类:主观战斗力属性类
主要包括:控制类各种效果、移动速度、视野范围、无敌属性等等第一/二类中未包含的所有与战斗相关的属性

注:以上属性在部分乘法公式的模型中,是无法获得近似/绝对战斗力(即无论如何去评价,对战斗力的影响总会出现较大偏差)的价值的

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2015-10-16 13:04:26 | 显示全部楼层
真实战力=有效生命×有效输出
但这样的战力不利于玩家理解.尤其是在需要逐个系统独立展示战力的场景下.
所以通常会用一个关于属性的多项式公式来计算战力.
如果只有HP和ATK两个属性,那么玩家的真实战力之比等于显示战力之比的平方

1

主题

5

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2015-10-17 10:25:42 | 显示全部楼层
rjflx 发表于 2015-10-16 08:14
我想知道“相对战斗力”是什么。另外,由(1)如何推导出(3)的。(3)这个公式是什么含义?(3)这个公式 ...

哦,其实是这样的,我们游戏中的战斗力都是由属性的加权形式来描述的,所以可以用(3)式来表达。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-25 06:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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