一 : 圆桌理论
圆桌理论-教你计算暴击率上限( 圆桌理论-教你计算暴击率上限(有关暴击和命中溢 出) 注:本文讨论的所有攻击都是针对普通攻击(白字攻 本文讨论的所有攻击都是针对普通攻击( 击),任何技能攻击(黄字攻击)不在本文讨论范畴。[www.61k.com] ),任何技能攻击(黄字攻击)不在本文讨论范畴。 任何技能攻击 wow 中计算暴击率是基于所有的攻击的。暴击率不 中计算暴击率是基于所有的攻击的。 是仅仅基于命中的部分。 是仅仅基于命中的部分。一次近战或远程攻击的结果 是基于一个服务器产生的随机数, 是基于一个服务器产生的随机数,然后通过核对服务 器端的内在列表, 得出攻击的结果。 也就是对白字来 [也就是对白字来 器端的内在列表, 得出攻击的结果。 说未命中/躲闪 招架 格挡/暴击 说未命中 躲闪/招架 格挡 暴击 普通攻击只进行一 躲闪 招架/格挡 暴击/普通攻击只进行一 数判断。 次 roll 数判断。] 下面有必要了解一下几个基础数据换算: 下面有必要了解一下几个基础数据换算: 命中等级 15.7692 命中等级 = 1%命中率 命中率 精准等级 3.9423 精准等级 = 1 武器技能 1 点武器技能减少目前招架、闪避你的攻击机率 点武器技能减少目前招架、 0.25%爆击等级 22.0769 爆击等级 = 1%爆击率 爆击率 下面了解一下 70 级玩家对 73 级 BOSS 的普通攻击 基础数据: 基础数据: 双持单手武器: 双持单手武器:未命中 躲闪 招架 偏斜 格挡28% 5.60% 5.60% 25.00% 5.60%这里可以附带计算一下命中溢出通过上面的数据, 这里可以附带计算一下命中溢出通过上面的数据,很 通过上面的数据 容易计算得到: 容易计算得到: 若不考虑天赋加命中的情况: 若不考虑天赋加命中的情况: 装备搭配 441.53 命中28*15.7692=441.53等级,普通攻击命中开始溢出, 等级,普通攻击命中开始溢出, 装备搭配 141.92 命中9*15.7692=141.92等级,技能攻击命中开始溢出; 等级,技能攻击命中开始溢出;若战士天赋加了 3%命中,则上面的数据变为: %命中,则上面的数据变为: (28-3)*15.7692=394.23 - ) = 装备搭配394.23 命中等级,普通攻击命中开始溢出, 命中等级,普通攻击命中开始溢出, (9-3)*15.7692=94.62 - ) 装备搭配94.62 命中等级,技能攻击命中开始溢出。 命中等级,技能攻击命中开始溢出。双手武器: 双手武器:未命中 躲闪 招架 偏斜 格挡9.00% 5.60% 5.60% 25.00% 5.60%下面看一下普通攻击的列表: 下面看一下普通攻击的列表: 未命中 躲闪 招架[背后没有 招架 背后没有] 背后没有 偏斜 格挡[背后没有 格挡 背后没有] 背后没有 暴击 普通攻击 这个列表的含
圆桌理论 圆桌理论
义: 这个列表的含义: a. 这个列表的排列是按照攻击结果的优先级的 递减排列。(www.61k.com)也就是说, 递减排列。也就是说,顶部结果的优先级高于其 下面的部分。 下面的部分。b. 每次近战攻击 这里只讨论白字伤害即普 ( 通攻击)都可能会出现未命中,躲闪,招架, 通攻击)都可能会出现未命中,躲闪,招架, 格挡,偏斜,暴击。 格挡,偏斜,暴击。除此之外将是一次普通 攻击。 攻击。 c. 玩家的白字近战攻击, 玩家的白字近战攻击, 不会出现诸如被招架的暴击,未命中的偏斜等情况。 架的暴击,未命中的偏斜等情况。所有可能 的攻击结果是互相独立排斥的。 的攻击结果是互相独立排斥的。 d. 当顶部的各种可能几率 除最后一个普通 当顶部的各种可能几率[除最后一个普通 攻击外]达到或超过 攻击外 达到或超过 100%,攻击结果将不 , 会出现普通攻击。(圆桌理论- 会出现普通攻击。(圆桌理论-上面的各部 。(圆桌理论 的时候, 分和超过 100%的时候, 的时候 会把后面的各种结 果挤出桌面。) 果挤出桌面。) OK,下面开始计算暴击上限: 下面开始计算暴击上限: 下面开始计算暴击上限 假设某狂暴战, 假设某狂暴战,装备命中等级 142(达到所 ( ),天赋 % 谓 9%技能全命中),天赋 3%命中没有强 %技能全命中), ),天赋 化,装备精准等级 44(耻辱碎片),天赋 (耻辱碎片), 武器掌握- %躲闪没有强化, 武器掌握-2%躲闪没有强化,暴击率 33%。 %。 正面攻击, 那么如果站在 BOSS 正面攻击, 可以计算得 到: 未命中 28%-142/15.7692=19% - =躲闪5.6%- -44/3.9423*0.25%*100=2.81% 招架 5.6%- -44/3.9423*0.25%*100=2.81% 偏斜 格挡 暴击 普通攻击 25%5.6% 33% % 100%- %- %-19%- %-2.81%-2.81%-25%-5.6%-33%=11. 78% %-19% 该狂暴战士暴击率上限计算 100%- % %- -2.81%-2.81%-25%-5.6%= = 44.78% 即如果装备搭配和 BUFF 后超过 44.78%暴 暴 击率,暴击率将溢出。即使开了鲁莽, 击率,暴击率将溢出。即使开了鲁莽,实际受益的暴击率还是只有 44.78% 现在我们来计算一下更常规的狂暴战装备 搭配和输出站位( 背后, 搭配和输出站位(站 BOSS 背后,将列表中 的招架和格挡剔除) 的招架和格挡剔除) 假设某狂暴战, 假设某狂暴战,装备命中等级 200,强化了 , 天赋 3%命中,装备精准等级 44(耻辱碎 %命中, ( 片),天赋武器掌握-2%躲闪没有强化, ),天赋武器掌握- %躲闪没有强化, 天赋武器掌握 暴击率 33%。 %。 背面攻击,可以计算得到: 站在 BOSS 背面攻击,可以计算得到: 未命中 12.32% 躲闪 5.6%- - 28%-
圆桌理论 圆桌理论
200/15.7692-3%= - - %=44/3.9423*0.25%*100=2.81% 偏斜 暴击 25% 33% %普通攻击100%- %-12.32%- %- %-2.81%-25%-33%=26.87% 该狂暴战士暴击率上限计算 100%- %- 12.32%- %-2.81%-25%=59.87% %- = 我承认我是数据流^_^ 如果有问题,请指 如果有问题, 我承认我是数据流 与众狂暴战共勉! 出。(www.61k.com) 与众狂暴战共勉!
圆桌理论 圆桌理论
(www.61k.com)二 : 读WOW圆桌理论的感悟
主要针对数值、平衡、优化、执行效率的总结
我以前对数值的理解,一直局限在了随机性和公平性的设计思路上,最近读了WOW的圆桌理论,忽然领悟到了优化和执行效率的重要性。
之前我制作的游戏,虽然很小,但是执行效率普遍不高,我想一方面是我太能用并行了,另一方面就是判定上太罗嗦,根据这个,我想出了如下思路。
首先对WOW的圆桌理论简单概述一下,这是一个针对判定的算法,大致可以理解为他是一个幸运大转盘,被平分为了100个区域,指针转到哪个区域,就对应哪种判定,但是他最大的特点是有优先级,也就是区域内优先分布优先级高的奖品,如果100个区域先被占满了,那么很遗憾优先级低的奖品就不会被分配上了。
举个例子来说,如果一个人的躲闪为90%,那么另一个人的命中为20%,但是由于躲闪的优先级高,所以很遗憾,攻击者命中他的概率最高只有10%,这同时也解释了WOW盲目堆命中是没有作用的,但是这样一来公平性是否就被削弱了那?我想考虑到了权衡利弊,一次判定只ROLL一次随机数,相比对数值的优化,起到了很大的作用。
在我之前设计的命中和伤害里,我通常是先判定是否命中,然后才判断是否暴击,最后判断伤害总量,虽然优先级和公平性都体现出来了,但是至少要ROLL到3次以上,或者同类数值比较超过3次,罗嗦了不少。我之前只想到了随机性对玩家的惊喜、公平性对玩家的敷衍,可是和暴雪的设计理念比起来,现在看来需要学习的东西,太多了。
不过后面又仔细查了一些数据,发现WOW对公平性依然做出了体现,有这样一规则,每相差1等级,抵抗几率增加2%,也就是说如果攻击比自己高3个等级的人,那么优先级最高处,就判定了你最少有6%的几率攻击失败,这样一来同等级的比装备,而同装备的比等级,不但做到了平衡,还非常具有说服力了。
这里我又联想到了一条关于WOW资料片巫妖王之怒的一新闻,说是人物70级以后,等级越高,命中等级、暴击等级什么的所发挥的效率越低,我想1是保证了70以后的装备有足够的提升空间,肯定属性要比70的高,但又不能高的太离谱,2是防止了圆桌超过100%情况的发生,例如躲闪+招架如果超过了100%,那么玩家去70级以下副本不就无敌了吗,3是防止玩家穿70级积攒下的紫色装备,而跳过80级的蓝色装备,导致升级速度过快。
我又分析了一下WOW的BOSS掉落,虽然并不知道公式,但是圆桌理论确实提供了很高的执行效率,例如把BOSS可以掉落的装备,分布在1-100之间的数值上,那么转盘ROLL到几,就掉落几号对应的装备,而决定每次掉落几件装备的功能,就是一共ROLL了几次,难怪我们公会有个负责开BOSS的MM,每次都开出3件相同职业的T6,总被大家骂是黑手,不过这样计算起来,他的人品还相当的稳定那。
对比我以前设计的BOSS掉落装备,每一件都ROLL一次,确实实行效率太底了,还有一点不得不说的,就是WOW把ROLL的随机数,全服务器共享,这个更加优化了效率,而且不用每个需要ROLL的地方都对应一个随机数,同时还增加了公平性,就好像大家都喝一口井里的水,不用担心随机数列的问题。
例如我需要生成一个1-100的ROLL数,那么只设置一个随机数,攻击判定可以调用他,BOSS掉落可以调用他,玩家ROLL点也可以,好多都可以,不过前提是需要调用的范围,是1-100,或者2-101,这样长度的。
在这里我想到了以前我刚学JAVA时,设计的一段代码,其实很小儿科,就是指定一个范围在1-100的数,然后从1-100这100个数里对比相同的,通常用循环,需要循环100次,我当时处于好奇,就写了先判断这个数,是比50大还是小,然后在1-50或者50-100里对比,我当时没觉得什么,可是那时的JAVA老师一劲的说我有数值优化的天赋,现在回想起来,这样一来确实做到了优化,因为节约了49次判定。
类似的情况,我又突然想出了好多可以应用优化的地方。例如以前我统计杀怪任务的数量,就是纯并行,记录数量。现在我想其实可以这样来,首先需要一个变量,记录玩家从一诞生就开始,总杀怪的数量,然后每杀一个这种怪,也就是怪物死亡时自动触发,变量加1,一方面做到了玩家可以随时知道我击杀这种怪物的总数量,另一方面可以优化任务判定。
例如玩家目前击杀A怪的总数为100,那么玩家接到一个需要杀10个这样怪的任务,是否完成任务根本不需要用并行去监控,而是用接受任务时A的数值100加上任务需要杀的数值10,那么每次玩家需要判断这个任务是否完成时,直接判断玩家击杀过A怪的总数就可以了,如果总数大于110,那么就说明完成了,尤其针对循环类日常任务,优化了不是一点半点。
本文标题:圆桌理论-圆桌理论61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1