找回密码
 点一下
查看: 2072|回复: 14

关于WSAD地图操作延时探讨

[复制链接]
发表于 2011-12-19 00:08:24 | 显示全部楼层 |阅读模式
WSAD地图的控制方式,基本为触发后以快速循环方式移动单位,这个过程有3种方式:
1、通过一个周期事件,以最快为0.0625秒一次监听玩家输入动作,对单位执行移动。
      这个方式有两个极大的问题:如果有多个单位需要执行,则每次周期会进行多个判断,影响效率;另外,用户每次输入必须等到在周期到达才可以被响应,效率低下。这个方式还有可能因为用户每次操作都需要经过服务器一来一回才响应到单位,操作感更低!

2、以用户键盘按下状态时令单位执行移动,同时每0.0625秒循环一次本移动,直到键盘被按上。以下为伪代码:
  1. while(presskey!=up){
  2.           move the unit to the point;
  3.           waite 0.0625
  4.       }
复制代码
      这个方式避免以上第1点提到的所有问题,但单位移动依然是以点为单位的指令,即相当于用户不停的按右键来移动单位,这也极有可能引起网络延时。我未有这方面的统计,未得证实,但从实际操作感觉上来看,是有一定的延时。另外有一个问题时,当中途有一个其它指令,如使用某个以单位为目标的技能,那就会令单位的移动变得不平滑,出身突然转向一下。

3、采用第2种的控制方式,但不以点为单位的指令,是立即移动单位。这个方式的问题是,有可能单位在移动过程中可能无法很好的检查碰撞(如移动的距离很大),让单位直接跳上了不同层级的台阶,而且从效果上,即使使用了混合,放在战网上时仍然会有延时的感觉,效果还不如第2种好。

以上是我目前总结的经验,我10月才开始做地图的,希望能有抛砖引玉的效果。
 楼主| 发表于 2011-12-19 00:34:27 | 显示全部楼层
http://www.sc2mapster.com/forums ... er-become-lag-free/

和  

http://www.sc2mapster.com/forums ... igger-lagless-wsad/

有人说125MS是避免不了的,也有的说是BET.net的问题,因为LAN下的WAR3就没有这个问题
回复

使用道具 举报

发表于 2011-12-19 11:08:47 | 显示全部楼层
学习了,谢谢分享了
回复

使用道具 举报

发表于 2011-12-19 17:35:45 | 显示全部楼层
一个问题在于键盘事件的延迟,另一个问题在于BN。
至于楼主说的0.0625秒的周期延迟,个人认为完全可以忽略。人的感官延迟都有0.1秒
至于使用一个0.0625秒的周期触发来监听所有的用户输入的方法是不是最优,个人认为目前这个并不是主要问题。
回复

使用道具 举报

 楼主| 发表于 2011-12-19 18:08:56 | 显示全部楼层

回 3楼(okmpl1350) 的帖子

okmpl1350:一个问题在于键盘事件的延迟,另一个问题在于BN。
至于楼主说的0.0625秒的周期延迟,个人认为完全可以忽略。人的感官延迟都有0.1秒
至于使用一个0.0625秒的周期触发来监听所有的用户输入的方法是不是最优,个人认为目前这个并不是主要问题。 (2011-12-19 17:35) 
0.1秒还是0.0625秒不是以人的感觉来决定的,而是以实际效果来决定的。这的确不是主要问题,主要问题还是键盘事件延迟。
回复

使用道具 举报

发表于 2011-12-19 18:31:51 | 显示全部楼层
话说,楼主你想表达什么呢?关于战网延迟偶们早就知道了。还有,你发该帖是想说你找到了解决的方法?
回复

使用道具 举报

 楼主| 发表于 2011-12-19 18:52:24 | 显示全部楼层

回 5楼(黑暗中声啊) 的帖子

黑暗中声啊:话说,楼主你想表达什么呢?关于战网延迟偶们早就知道了。还有,你发该帖是想说你找到了解决的方法? (2011-12-19 18:31) 
错,是我找不到解决方法 ,然后问:http://bbs.islga.org/read-htm-tid-681232.html
回复

使用道具 举报

发表于 2011-12-19 20:20:45 | 显示全部楼层
跟jass相同的问题
频繁执行的触发本来就是这样的问题
也许在数据层面会好些

LZ说的问题根本不是SE范围内的
解决这个问题最好的方法是更高的PC配置及更好的网络
要么放弃多人游戏
回复

使用道具 举报

 楼主| 发表于 2011-12-19 22:12:35 | 显示全部楼层

回 7楼(疯人¢衰人) 的帖子

疯人¢衰人:跟jass相同的问题
频繁执行的触发本来就是这样的问题
也许在数据层面会好些

LZ说的问题根本不是SE范围内的
....... (2011-12-19 20:20) 
我不认为是网络好坏的问题,虽然也有相关。
如WOW,就是你先接收输入,移动角色,怎么说呢?因为即时网络很差,移动也是没有问题的,顶多是技能施放时会卡,但也是先在本地执行了,才与网络通信。(当然实际上可能更为复杂一些)
而这里不同,任何键盘输入,都会先与服务器通信,才反馈到事件的动作。
我理解是这样。
回复

使用道具 举报

 楼主| 发表于 2011-12-20 00:18:00 | 显示全部楼层
有人通单位使用技能来代替按键,如使用某个技能是按W的,在施方阶段时发布移动命令
回复

使用道具 举报

发表于 2011-12-20 13:13:05 | 显示全部楼层

回 8楼(govo) 的帖子

govo:我不认为是网络好坏的问题,虽然也有相关。
如WOW,就是你先接收输入,移动角色,怎么说呢?因为即时网络很差,移动也是没有问题的,顶多是技能施放时会卡,但也是先在本地执行了,才与网络通信。(当然实际上可能更为复杂一些)
而这里不同,任何键盘输入,都会先与服务器通信, .. (2011-12-19 22:12)
于是完全跟SE无关
SE还没强大到修改数据传输结构

LZ的想法是好的
但是你应该跟暴雪说
而不是GA

渣BN
回复

使用道具 举报

 楼主| 发表于 2011-12-20 21:47:07 | 显示全部楼层

回 10楼(疯人¢衰人) 的帖子

疯人¢衰人:于是完全跟SE无关
SE还没强大到修改数据传输结构

LZ的想法是好的
....... (2011-12-20 13:13) 
我是讨论一下嘛,想不到这部分已经是SE的极限了,我也希望大家有高招能使使嘛
回复

使用道具 举报

发表于 2011-12-20 23:06:23 | 显示全部楼层

回 9楼(govo) 的帖子

govo:有人通单位使用技能来代替按键,如使用某个技能是按W的,在施方阶段时发布移动命令 (2011-12-20 00:18)
用技能代替“键盘事件”不仅不能很好得解决延迟问题,还会带来很多新的问题。
但是最根本的还是网络问题,美服WASD就不卡。
网络不好,玩常规对战也卡不是?
回复

使用道具 举报

发表于 2011-12-20 23:55:58 | 显示全部楼层
我最近也在做WSAD移动操作的地图。
目前还在单机状态,还没感受到延迟的问题。目前的想法是做成延迟对手感影响不是很严重的模式。不过看目前的状况,玩家数越多,肯定处理会更繁琐。
估计做成双人或四人游戏模式已经到极限了。

现在最讨厌的问题是单位没有移动中射击的动作。
以及使用鼠标推视角的模式,准心不好处理,不方便操作物品栏(鼠标被锁定),水平视角比较卡……
回复

使用道具 举报

 楼主| 发表于 2011-12-21 09:35:11 | 显示全部楼层

回 13楼(angerking) 的帖子

angerking:我最近也在做WSAD移动操作的地图。
目前还在单机状态,还没感受到延迟的问题。目前的想法是做成延迟对手感影响不是很严重的模式。不过看目前的状况,玩家数越多,肯定处理会更繁琐。
估计做成双人或四人游戏模式已经到极限了。

现在最讨厌的问题是单位没有移动中射击的动作。
.. .. (2011-12-20 23:55) 
在特定的速度移动下,手感影响不大,例如单位移动速度相对缓慢时。人数只决定了游戏整体的畅顺度,目前关键问题玩家每一个动作都会先经过服务器,例如你让单位移动,如果网络卡,它是不会动的。这是RTS的处理方式吧,MMORPG网游的处理方式是先移动,如果有延时了,人物就会退回到原来的坐标。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 10:04 , Processed in 0.219665 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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