Tradeit.gg Banner Left
Tradeit.gg Banner Right

CS2 Subtick Sends Bullets Back In Time?!

All credit goes to Humblefishy and his post on Reddit that highlights the Major problem with CS2’s subtick system. Link provided below:

Click here

Every bullet fired in CS2 goes back in time by 1 or 2 frames.

This is because of Valve’s Subtick implementation. I believe it was intentional, but Valve doesn’t seem to understand the implications. This is why I consider it an oversight.

I will refer to this oversight as Input Time Travel (ITT), as this affects both shooting and other actions like knifing. This is NOT the same as the server side time travel all shooters do to make your shot connect.

I’ve already made a similar post to this, but I made several factual mistakes and most importantly failed to understand what the actual root cause is. (Bullet Frame Warp – Why Gunplay Feels Worse in CS2).

Please read and try to understand the post fully. This is a complicated topic that cannot be written off. This is not simply Subtick being more accurate for instance.

A big thanks truly goes to all the commenters who engaged with my post and pointed out it’s flaws. This post is thanks to their input and discussion.

To preface, I will use the term ‘present’ often in this post. I am referring to the first frame any input is registered (i.e. moving your mouse, firing your gun). There will almost always be a few frames of delay in any game before your input is shown. I will argue later for why this should be considered the present.

This is my hypothesis for how Subtick inputs work:

– In the first frame the game registers a mouse click; the aforementioned ‘present’, CS2 aquires the timestamp of the moment you clicked your mouse.

– Next it finds the closest frame prior to this timestamp, and declares that this frame is the moment you fired your shot, using the exact moment this frame takes place and location of your crosshair from it*.

– In the present, your weapon fires with your bullet going where your crosshair was in that prior frame.

I will be arguing that the way Subtick ought to work is that your bullet goes exactly where your crosshair is aiming in the present frame, not some frame in the past.

The reason I believe it takes a timestamp of when you click your mouse is that, with Vsync enabled, it backtracks by two frames, but with vsync disabled it’s only a single frame. However only once I recorded a two frame disconnect without vsync. This seemingly random outlier is why I believe this is a timestamp rather than a hardcoded number of frames to backtrack based on if vsync is enabled or not.

This is a very important point to keep in mind. Without Vsync, the disconnect is only a single frame. This is probably the setting you are playing on. Most of these clips, but not all, use vsync.

In addition please keep in mind all clips disable random weapon movement inaccuracy.

In these first two clips, you can see why exactly subtick fails due to ITT. Take a very good look at these clips. Understanding what is going on between these two clips is essential to understanding what ITT does and why this needs to be fixed, even if it is intentional.

Take a CLOSE look at the pattern I make with my mouse movement. I click at the same moment I change direction. In CSGO, the hit registration reflects this, having my bullet fire exactly where I change direction. While in CS2** the bullet hits before I change direction (look closely at the red impact box).

Leave a Reply

Trending

Discover more from CS2 Grove

Subscribe now to keep reading and get access to the full archive.

Continue reading