任务单 #41660

Various small patches - 2021/02/28

开放日期: 2021-03-01 04:37 最后更新: 2021-06-21 04:29

报告人:
属主:
(无)
类型:
状态:
关闭
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Accepted
文件:
5

Details

Sorry, at this moment, I don't have much stuff ready for submission yet. Firstly, an update on the movement regulator: I tried giving it another chance and see if making it even less strict compared to my initial changes (gaps greater than 4 tics aren't accounted for, gaps timeout after 35 tics, adding a "current latency" variable that gradually transitions to the "safe latency" over a few seconds), but after testing with some friends I'm still getting a couple of complaints about delays, albeit less than before. The last compromise I can think of is reducing the max gap size to only 2 tics, but this would likely undermine the usefulness of the movement regulator.

Secondly, I tried experimenting with duplicating the last processed movement command for tics when the server doesn't have any stored movement commands left from the client, which kind of helps improve the stuttering (I tried observing this with two clients, one of which was configured to suffer ping spikes and dropped packets, the movement was less jerky compared to 3.0, even in the worst conditions). I might need to refine and test this some more to see if this won't be too problematic during actual online games.

Thirdly, I tried experimenting to see if it would be feasible to modify MovePlayer or MoveLocalPlayer command to only send updates on deltas like position, velocity, and angle, when they actually change in order to save some more on bandwidth. So far, there's some discrepancies in the positioning of the player while they're stationary on the server and client's ends. Maybe there's some way to improve this.

Lastly, I've been getting a lot of complaints about jerky player movement, or "player teleporation", when people change cl_ticsperupdate to something above 1. Even I can notice the jerky movement when I change my update rate to 3 tics. I suppose this never an issue in 3.0 or older versions since the tic update rate never worked correctly until now. I'll try finding a way to smoothing the movement in between the tics that new movement commands are sent.

In the meantime, I managed to quickly add a few small patches to keep things moving.

任务单历史 (3/15 Histories)

2021-03-01 04:37 Updated by: akmdm
  • New Ticket "Various small patches - 2021/02/28" created
2021-03-01 04:58 Updated by: akmdm
评论

I also backported the packet loss indicator from ZCC, which prints how many packets were missed on the client's screen when they experience packet loss. I left its default value to true, as it could be useful information to anyone who might be experiencing packet loss.

2021-03-01 05:57 Updated by: torr_samaho
评论

No need to be sorry, I greatly appreciate your patches! Also thanks for the updates regarding the movement regulator. Probably we should just return to the tic buffer from 3.0, so that we can release a new beta build soon.

I added 10268, 10269 and 10270. 10271 also looks fine, I'm just not completely sure whether cl_showpacketloss should default to true or not. The occasional missed packet is normal, so I personally wouldn't want to be bothered by minor packet loss that it nearly not noticeable.

2021-03-01 06:04 Updated by: None
评论

Reply To torr_samaho >Also thanks for the updates regarding the movement regulator. Probably we should just return to the tic buffer from 3.0, so that we can release a new beta build soon.

Sounds good, I'd really appreciate that! I think a lot has changed in the last few months too so maybe we're ready for a new build. I'll still try to make any more improvements to the jerky movement as time goes.

I'm just not completely sure whether cl_showpacketloss should default to true or not. The occasional missed packet is normal, so I personally wouldn't want to be bothered by minor packet loss that it nearly not noticeable.

That's a good point, I can send out a quick revision which changes the default value to false and people can enable the indicator themselves if they want it.

2021-03-01 06:07 Updated by: torr_samaho
评论

No need to send a revision, I can easily replaced the bool locally :).

2021-03-01 06:10 Updated by: akmdm
评论

Reply To torr_samaho

No need to send a revision, I can easily replaced the bool locally :).

No problem, thanks!

2021-03-01 06:13 Updated by: torr_samaho
评论

Looks like you added the updated the patch the very minute I left the comment. In any case, 10271 with default false is added now.

2021-03-01 06:30 Updated by: akmdm
评论

I want to ask something, if we switch back to 3.0's tic buffer, could the buffer still empty at 4 commands per 3 tics rather than 6? That way the buffer isn't emptying too quickly as it does in 3.0.

2021-03-14 23:36 Updated by: torr_samaho
评论

Reply To akmdm

I want to ask something, if we switch back to 3.0's tic buffer, could the buffer still empty at 4 commands per 3 tics rather than 6? That way the buffer isn't emptying too quickly as it does in 3.0.

Sure. It's quite possible that the behavior of 3.0's tic buffer can be improved by some fine tuning.

2021-06-21 04:29 Updated by: torr_samaho
  • 状态 Update from 开启 to 关闭
  • 处理结果 Update from to Accepted

Attachment File List

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名