this has actually nothing to do with high latency users

Stealth Mode <stealthmode1...@gmail.com> schrieb am Mi., 9. Mai 2018, 03:07:

> Like you said netcode bug that has been around for a long time. Kudos to
> Dylan for developing a fix independently. And for you attempting to show
> this mod team what is flawed in their product. Will this fix work for
> higher latency users as well?
>
> -Stealthmode
>
> On Tue, May 8, 2018, 16:38 William Kane <ttall...@googlemail.com> wrote:
>
>> There is, currently (and has been for a long time, but that is another
>> story), a bug that will lead to client / server hitboxes to become
>> desynchronized from each other in certain situations.
>>
>> It can also be exploited by malicious clients to deliberately de-sync
>> hitboxes, in a way that is undetectable in demos and while spectating - the
>> bug happens because of how, in certain conditions, client holds back
>> movements commands (CUserCmds) for transmission at a later time - and how
>> the server animates said "batched" user commands, all in a single frame.
>>
>> By default, it basically works like this on client:
>>
>> 1.) On every frame, engine determines how many movement commands to
>> create, based on how long it took to process last frame.
>> 2.) If your frame rate drops below tickrate, engine will create
>> additional movement commands per frame to keep up with tickrate.
>> 3.) If there's more than one movement command to be created on any given
>> frame, the engine will delay networking of created commands until the final
>> one has been created.
>>
>> Now on server upon of arrival of CLC_Move message:
>>
>> 1.) Server parses all movement commands contained in CLC_Move packet, and
>> runs simulation for each packet, in the order they were created on client.
>> 2.) During simulation, players are simulated based on their inputs sent
>> with their movement command, i.e. buttons pressed, etc.
>> 3.) During simulation, server will also update server side animations
>> used by hit registration.
>>
>> *The problem is that animation code only runs once per frame - if
>> multiple movement commands are queued for execution in a single frame, only
>> the first one passed in to be animated will be processed, later ones will
>> be ignored due to server still being in the same frame.*
>>
>> Fixing this would be as easy as only animating during simulation of the
>> final, most recent command out of a batch sent in by a client.
>>
>> Only the last command out of a CLC_Move packet simulated by the server
>> will be broadcasted to players, other commands are of no use to animation
>> and hit registration, clients don't get to render them and there is no lag
>> compensation record created on those.
>>
>> Here is a video that show this bug in action by a *malicious client*,
>> however due to how the engine works, players on bad connections or with bad
>> computers can trigger this bug too, and thus desync animations.
>>
>> https://www.youtube.com/watch?v=hL3gxRv_5Jk
>>
>> This video, also demonstrates a community made fix, which fixes this
>> issue, it's code can be found here - credits go to my friend Dylan:
>>
>> https://github.com/click4dylan/CSGO_FakeAngleFix
>>
>> Thank you for your attention.
>> _______________________________________________
>> Csgo_servers mailing list
>> Csgo_servers@list.valvesoftware.com
>> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/csgo_servers
>
> _______________________________________________
> Csgo_servers mailing list
> Csgo_servers@list.valvesoftware.com
> https://list.valvesoftware.com/cgi-bin/mailman/listinfo/csgo_servers
_______________________________________________
Csgo_servers mailing list
Csgo_servers@list.valvesoftware.com
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/csgo_servers

Reply via email to