浆糊论坛-RO小站's Archiver

gt_x 发表于 2005-3-31 21:08

[转帖]揭示速度和延迟的神秘面纱

[color=blue]有第一次就有第二次,今天我要问那个人收转载费了...被吃定了...
[/color]

本期的主题是:速度和延迟。
[color=red]速度是单位时间内的判定次数,而延迟是两次同类型判定之间的最短有效时间间隔。一般,两者成倒数关系。[/color]
RO中,没有连续性的动作,从编程角度而言,[color=red]所谓的速度之间的间隔其实是由1个或数个延迟所组成的[/color]。比如:一个攻击速度是2.5次/秒的攻击速度,其实是等同于每次攻击时间的间隔为0.4秒(0.4*2.5=1),攻击一次,间隔0.4秒后开始下一次的攻击。

第一部分:位移速度和延迟
RO的位移同其他游戏不同之处在于,其位移并不是连续的。一般的有控制速度的游戏,比如A3,MU等都靠“速度齿轮”控制位移速度,所谓“速度齿轮”,就是依照人物的特点,判定单位时间内允许多少位移距离的程序(让大家想到了“网三工作狂”,第一个真正意义上的“外挂”)。但是,RO没有,所以能加速位移的非法程序到现在为止还未出现。
为什么呢?因为,RO的位移不是按照单位时间内的位移来计算的。
RO计算速度的方法是:[color=red]根据你的人物的状态等,运算出你的位移速度,然后,以这个位移动作的延迟(就是距离/速度,讲白了就是时间)作为一个基本的时间间隔再乘上你所要走的距离(按照格子计算)[/color]。举一个例子,正常情况下我的位移速度是3格/秒。如果我要走到12格距离的位置上,那么,系统在我发出“位移至(X,Y)”的指令后,按照我的速度计算出一个4秒的延迟,在4秒延迟内拒绝其他的位移指令。如果我只位移6格,则这一延迟是2秒。同时,客户端显示出人物的移动(但是,系统段判定你是“飘”过去的)
推论:[color=red]如果在走路(位移延迟起效)过程中突然受到攻击,则位移操作中断,人物判定位置恢复到发出位移指令的最起始状态![/color]
验证:绝大部分的法师都有位移时被怪物攻击后,人物的实际位置和显示位置不一致的状况,如图:
[IMG]http://bbs.boxbbs.com/uploads/81/post-112045-1112097888.jpg[/IMG]
下图,我正在被2只三叶虫攻击,但是三叶虫明显和我有半个暴风雪的距离间隔。可见,我在位移遭受到攻击的时候,实际的位置判定已经发生了改变,图示里面的位置显示的我位移后的应该位置,但是,系统实际判定我的位置却在暴风雪边缘被三叶虫攻击的位置上。
这张图更明显说明问题。
图中我特地按照这样的位置释放了1面火墙,图中,我的判定位置和显示位置显然不一致,如果一致,则三叶虫会撞火墙自焚,可图中我仍然在受到攻击,所以系统端判定我的实际位置是在火墙下方。
[IMG]http://bbs.boxbbs.com/uploads/81/post-112045-1112098061.jpg[/IMG]
现在众法师们知道RO里有这样的“漂移”了吧(和头文字D内的漂移无关...我也没看过头文字D)。

第二部分:技能延迟和攻速的关系
这也是核心的部分,也是本报告中的难点和重点。
首先说说RO里衡量攻速的标准是ASPD,ASPD和单位时间的攻速APS(Attack Per Second,自定义概念,方便以后说明)的关系式是:APS=50/(200-ASPD)。定义ADT=1/APS。
攻击速度是怎么来的呢?我上文已经分析过,是通过几个控制延迟来实现的。比如ASPD175对应攻速是2次/秒,那么两次攻击的延迟就是0.5秒。
官方目前的攻速最高锁定在ASPD190,为什么呢?这是判定的缘故,设定判定和效果作用判定的下限时间是0.1秒,一个步骤就是最低时间是0.1+0.1=0.2秒,正好对应攻速是5次/秒,即ASPD190。
如图,从单机器版的RO我可以得知,草的ASPD是200,按照上述公式,不是攻速无穷大了?那样会死机的。所以给攻速设置了一个上限:
[IMG]http://bbs.boxbbs.com/uploads/81/post-112045-1112099048.jpg[/IMG]
因为草的HIT是0,所以打我MISS的时候不发生伤害判定而显示MISS,从最底下到最顶一共1秒时间,扣除打到我的2次,共10次,所以我将RO的每次判定的最短时间判定为0.1秒不是没有道理的,用雷鸣飞出MISS也是10次MISS/秒。
[color=red]技能的延迟属于固有延迟,技能延迟只能影响下一个技能的释放,而不影响普通攻击,反之亦然。技能的固有延迟可以通过布莱齐诗歌加以缩短![/color]

第三部分:浮动延迟
为了对抗日益泛滥的加速大军,去年圣诞节前一周,RO中诸多技能实装了和ASPD有关的浮动延迟,ASPD越高浮动延迟越低。但两者具体是什么关系呢?
首先要明确是什么技能加了浮动延迟,浮动延迟的特性是什么。
[color=red]EP6.0的时候无咏唱无延迟的技能追加了浮动延迟!
浮动延迟只能通过提升ASPD来缩短,不能用布莱齐!
浮动延迟不仅能够影响下一个技能释放,还能影响普通攻击![/color]
可见,此类技能已经变相成为“普通”物理攻击了。
而我主要在于测试延迟和浮动的关系。
测试没有附图,因为是大量的数据。
测试者:我
测试方法:利用治愈术1,观察浮动延迟和ASPD的关系。人物分别在:手杖+不喝水,空手+不喝水;手杖+喝水;空手+喝水下测试。装备骷髅手杖,喝波色克药水。
状态 |     ASPD|  APS(计算值)| ADT|   60秒内治愈术个数|
手杖+不喝水|  146|     0.926|     1.08|        41|
空手+不喝水|  157|     1.163|     0.88|        51|
手杖+喝水|   156|     1.136|     0.86|        49|
空手+喝水|   165|     1.429|     0.70|        55|
(接上表)
60秒内延迟个数|     浮动延迟时间|
   40|              1.5|
     50|              1.2|
     48|              1.25|
     54|              1.11|
从上表分析,可以看出,浮动时间喝ADT大约成正比关系,正比因子是0.7,即:ADT*0.7=浮动延迟时间。
带入ADT和ASPD公式,线性优化后,排除反应和判定的影响后,得到数据公式:
[color=red]浮动延迟=5.7-0.03ASPD,ASPD=190的时候浮动延迟免除。[/color]
进一步测试发现,该公式对于ASPD低于180的时候吻合较好,而高ASPD由于受到个人操作和统计影响会有较大偏差。
测试:我让地狱诗人到天地数干打草,光芒草20HP,任何攻击均为1,二连上去伤害仍然为1。看地狱诗人能够在多少时间内拔除光芒草。
实际测试:地狱诗人ASPD173,带入此公式,得到浮动延迟为0.51秒,则一个攻速为0.6秒/次(考虑到系统响应和判定影响),消灭一株草需要12秒钟,实际测试为13秒(精度限制,因为我的计算表只能读到秒)。
截图印证测试:
[IMG]http://bbs.boxbbs.com/uploads/81/post-112045-1112100919.jpg[/IMG]
熟悉二连的玩家应该可以估算出这个攻速是多少了。

第四部分:250毫秒的强制延迟
250毫秒的强制延迟的效力是:
[color=red]在使用一个技能后紧接着250毫秒的时间内,服务端拒绝响应下一个技能命令。这是系统端的设定,任何程序无法突破!
但目前,250毫秒被取消了,而且尚未装入!![/color]
证据1:EP8.0圣诞后我依然用装备手杖无任何状态下使用治愈术1,每15秒恢复9次。而EP8.5的时候,同样状态下每15秒可以恢复10~11次,平均每次相差了0.303秒(计算值)。
证据2:请看截图
[IMG]http://bbs.boxbbs.com/uploads/81/post-112045-1112101354.jpg[/IMG]
使用雷鸣10攻击光芒草,光芒草20HP,2个雷鸣放平。但是这是第2次雷鸣,图中清楚显示了游标指示为10级雷鸣,游标还显示光芒草已经死亡,但是,我依然在释放第3个雷鸣。如果250毫秒技能响应延迟存在,那么我在第2个雷鸣结束后,系统拒绝我释放下一个雷鸣,250毫秒时间也足够让系统发出“光芒草已死亡”的讯息,我也就不可能再释放出第3个雷鸣。处于连击状态下雷鸣没有0.6秒甩手缓冲数据的时间。这个巫师是最最清楚的了。
据此我判定:250毫秒技能响应延迟已经取消了。
也许是为了方便以后实装禁言系统吧。

学院派报告结束!欢迎大家交流!
本文作者阿甘拜托转载

lyons535 发表于 2005-3-31 21:10

- -精华
不看都知道

芊芊 发表于 2005-3-31 21:12

据此我判定:250毫秒技能响应延迟已经取消了


哦?不能单独从雷鸣这里判断吧?至少我昨天用后退回避的时候依然感觉很明显的延迟

huawu520 发表于 2005-3-31 21:13

太长不想看了.....(主题不够吸引我)
不过支持楼主(楼主辛苦拉)
奔向精华

AIR 发表于 2005-3-31 21:13

做了好多测试 我是么那么多空饿...........m(_ _)m

奇迹的海 发表于 2005-3-31 21:14

看上去和数学书差不多了...有定理和证明...

[CC]小叽 发表于 2005-3-31 21:15

ASPD...决定性因素.

Again 发表于 2005-3-31 21:15

不错,果然是小站的特色啊。
难怪风云仙境将小站列位榜首了……

我就是上海C的Tony J 发表于 2005-3-31 21:20

我只是感觉金钱的延迟似乎改过了 没之前那么慢了

RO里命中最高的职业 发表于 2005-3-31 21:23

我想知道两个问题
第一个问题表达烦琐……暂时不说


第二个问题是RO的最小判定时间是多少?
肯定不是0.02S那么长吧

水城彩音 发表于 2005-3-31 21:24

想起前一段日子某人给我的一句话:

“我们是娱乐圈的人士,服务于大众传媒,将有价值的东西撕碎给大众看,用他们的泪水充盈我们的钱包 ”

把他稍微改一下就是楼主的行为了。。。

贼喊抓贼的世界 发表于 2005-3-31 21:24

好贴。。。不顶不行

ZA2ASUKA 发表于 2005-3-31 21:26

那个湿人....楼主ODIN得...?

Again 发表于 2005-3-31 21:26

[QUOTE]芊芊,2005-03-31, 21:12:18
据此我判定:250毫秒技能响应延迟已经取消了


哦?不能单独从雷鸣这里判断吧?至少我昨天用后退回避的时候依然感觉很明显的延迟 [/QUOTE]
我就是那只白鼠...
我认为250毫秒取消的理由有2:
1,雷鸣,原因我已经说了。
2,治愈术,圣诞节左右是15秒恢复9个,8.5是恢复11个,平均下,正好两者相差0.303秒。
还有浮动ASPD的延迟,我认为是纯延迟,不考虑系统判定和响应在内。
因为我调用过高科技后,按照公式反推加速倍率,然后单位时间的攻击次数最多差1次而已。

gt_x 发表于 2005-3-31 21:26

你自己回了啊

那我编辑掉

不哭魔神 发表于 2005-3-31 21:28

250毫秒的延迟取消了?

gt_x 发表于 2005-3-31 21:29

[QUOTE]水城彩音,2005-03-31, 21:24:21
想起前一段日子某人给我的一句话:

“我们是娱乐圈的人士,服务于大众传媒,将有价值的东西撕碎给大众看,用他们的泪水充盈我们的钱包 ”

把他稍微改一下就是楼主的行为了。。。 [/QUOTE]
.............

作者委托我代发的...

imissu520 发表于 2005-3-31 21:30

强贴
后退回避不知该作何解释~召唤达人研究~

Again 发表于 2005-3-31 21:33

[QUOTE]RO里命中最高的职业,2005-03-31, 21:23:13
我想知道两个问题
第一个问题表达烦琐……暂时不说


第二个问题是RO的最小判定时间是多少?
肯定不是0.02S那么长吧 [/QUOTE]
至少我认为,RO一个判定时间的下限不是0.02S而是更长。
打草就是一个例子。
草的ASPD是200,是拿SF数据测试的。如果按照ASPD公式,那么攻击速度就无穷大而死机。
图示显示的MISS是最快10/秒,所以我认为,最快判定0.1S。
BOSS反应下限也是0.1S,转过风云仙境的都知道。
一般,RO的LAG都在20毫秒以上了...
20毫秒可能是RAGEXE.EXE访问内存的时间,而不一定是系统判定的最低时间。

geeseno1 发表于 2005-3-31 21:33

……雷鸣时喝的是波水?那测试可以再进行下了……

ZA2ASUKA 发表于 2005-3-31 21:35

SF只是模拟器 一些数据 不能保证跟GF一样得

RO里命中最高的职业 发表于 2005-3-31 21:36

[QUOTE]Again,2005-03-31, 21:33:27
[QUOTE]RO里命中最高的职业,2005-03-31, 21:23:13
我想知道两个问题
第一个问题表达烦琐……暂时不说


第二个问题是RO的最小判定时间是多少?
肯定不是0.02S那么长吧 [/QUOTE]
至少我认为,RO一个判定时间的下限不是0.02S而是更长。
打草就是一个例子。
草的ASPD是200,是拿SF数据测试的。如果按照ASPD公式,那么攻击速度就无穷大而死机。
图示显示的MISS是最快10/秒,所以我认为,最快判定0.1S。
BOSS反应下限也是0.1S,转过风云仙境的都知道。
一般,RO的LAG都在20毫秒以上了...
20毫秒可能是RAGEXE.EXE访问内存的时间,而不一定是系统判定的最低时间。 [/QUOTE]
这个最小时间我觉得很重要

比如,在最短时间内发动两个技能,不知如何判定?
我是从来没有同时发动成功两个技能

芊芊 发表于 2005-3-31 21:39

[QUOTE]Again,2005-03-31, 21:26:46
[QUOTE]芊芊,2005-03-31, 21:12:18
据此我判定:250毫秒技能响应延迟已经取消了


哦?不能单独从雷鸣这里判断吧?至少我昨天用后退回避的时候依然感觉很明显的延迟 [/QUOTE]
我就是那只白鼠...
我认为250毫秒取消的理由有2:
1,雷鸣,原因我已经说了。
2,治愈术,圣诞节左右是15秒恢复9个,8.5是恢复11个,平均下,正好两者相差0.303秒。
还有浮动ASPD的延迟,我认为是纯延迟,不考虑系统判定和响应在内。
因为我调用过高科技后,按照公式反推加速倍率,然后单位时间的攻击次数最多差1次而已。 [/QUOTE]
我个人觉得只是一个特例。。我一直对新干线直接一视同仁的为所有职业都追加延迟颇有微辞。这次会不会是解除了魔法系职业的强制延迟而物理攻击系职业的强制延迟依然存在呢?

你有没有做过物理系职业的延迟测试?

芊芊 发表于 2005-3-31 21:44

[QUOTE]Again,2005-03-31, 21:33:27
至少我认为,RO一个判定时间的下限不是0.02S而是更长。
打草就是一个例子。
草的ASPD是200,是拿SF数据测试的。如果按照ASPD公式,那么攻击速度就无穷大而死机。
图示显示的MISS是最快10/秒,所以我认为,最快判定0.1S。
BOSS反应下限也是0.1S,转过风云仙境的都知道。
一般,RO的LAG都在20毫秒以上了...
20毫秒可能是RAGEXE.EXE访问内存的时间,而不一定是系统判定的最低时间。 [/QUOTE]
以前没留意过一个MISS需要多久才小时。否则可以精确计算草的攻击速度
不过就以你提供的图片和根据我自己的经验来说。那个攻速绝对没有达到1秒10下的水平。
另外,客户端读取内存的时间与系统时间应该是一致的。否则就会发生服务器判定你被攻击了20下而客户端只显示10次。造成了错误

AIR 发表于 2005-3-31 21:44

其实魔法要念的 +延迟干什么除了雷鸣可以连杀怪物.......但有不能+速

冰墙 泥也+延迟 真吃不消他们

圣者约拿 发表于 2005-3-31 21:45

雷鸣什么时候有250毫秒的强制延迟了?

Again 发表于 2005-3-31 21:47

[QUOTE]芊芊,2005-03-31, 21:39:17

我个人觉得只是一个特例。。我一直对新干线直接一视同仁的为所有职业都追加延迟颇有微辞。这次会不会是解除了魔法系职业的强制延迟而物理攻击系职业的强制延迟依然存在呢?

你有没有做过物理系职业的延迟测试? [/QUOTE]
有,不过是打草测试,测试的是二连。
浮动延迟在ASPD180以上和实践也能较适合的吻合。
每次反应的差别可以缩短倒0.1S(精度限制)
比如全套后的AD狙击ASPD185,理论浮动延迟是0.15S,考虑误差为0.2S。
4秒内打倒绿草,每个动作是0.4S
两者相差0.2S,正好是一个设置判定和一个生效判定的时间。

奇迹的杨 发表于 2005-3-31 21:51

250ms的确已经没了
二连测试最明显,原本手动二连练级,你可以按得比较快,比如0.3秒按一个,但是ASPD只有170,这样,你按下第一个以后,一个二连飞出去,按了第二个以后,第二个二连暂时不会出来,而是等够ASPD170的延迟以后飞出去,就像连招一样
然而,当时改版多了300ms延迟,立刻连招不能,之后改成250ms,连招仍然不能
现在连招又回来了,侧面可以证明,250ms延迟已经消失。
本人用AD神射会战已经3-4周了,感觉:痛快异常啊

天马骑士 发表于 2005-3-31 21:53

看了不顶对不起楼主啊……

芊芊 发表于 2005-3-31 21:54

再说一下关于你说的位移速度和延迟
RO系统的对于移动的判定是通过客户端发送一个移动到某处的指令,然后系统立即判断你已经走到了该地点。通过计算移动速度的延迟反馈给客户端一段移动的动画。 中途被攻击的话这段动画却不会停止。但是系统会重新判断你的实际座标。导致了错位的现象发生——为什么要这么做我猜可能是为了节省服务器资源避免过多的计算路径吧。
比如早期的X元素箭。。具体操作是先点一下远处。同时使用技能点击魔物,跟着再点击第一次点的地方。就会发生移动中攻击的情况了
后来这个BUG被修正,追加了一次服务器的判断。中途攻击的话服务器就重新判断人物实际所在座标

页: [1] 2 3 4 5

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.