WANTED: Software Devs: Game Company Approved Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

WANTED: Software Devs: Game Company Approved Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Chief Blur Buster » 30 Mar 2021, 01:42

Hello all,
I have a special request for network software developers.

Esports VPN Latency De-Jittering and De-Bufferbloat App For High-Jitter ISPs

Often, many of us have to use a gaming VPN (see thread) to fix Internet hitreg issues. This helps bypass crappy Internet routings. But it can be even better.

However, this doesn't help when your ISP is high jitter, like an overloaded cable Internet connetion (10ms+ jitter) or a Starlink satellite connection (5ms jitter). In this case, we know the high-jitter is usually the first few hops. The good news is that latency can be de-jittered with an intermediary server/VPN.

CS:GO hitreg is much better at 30ms latency + 1ms jitter, than it is at 15ms latency + 5ms jitter. Pros frag much better at lower jitter, the low-jitter is often more important than average Internet latency. Also, some games have playing field leveller algorithms that disfavour the lowest-lag players when most players on a server has high Internet latency. So, this gives a latency de-jitter opportunity to improve hitreg.

COVID shut down all the big esports stadiums with jitter-free Ethernet LANs, forcing lots of competitive players to play over the open Internet, creating a wild zoo of very bad hitreg that constantly annoys a lot of gamers. Similarly, casual gamers who love competitive gameplay but hate erratic hitreg of Battle(non)sense lore, get very tired of terrible games. Sometimes even FTTH performs very terribly.

Why??? Why is this important?

Network latency jitter can erratically fudge your hit registration -- you shoot an enemy in a FPS game such as CS:GO. It randomly overshoots (shoots early) or undershoots (shoots late). This inconsistent hitreg is often caused by network jitter, especially relative to the latency of the other players on the same server, as well as the server tick rate too.

Remember, 128-tickrate CS:GO servers means only 8 milliseconds between ticks. A 4ms latency jitter can erratically jitter your hitreg early/late badly. Sometimes you can't easily fix this at the ISP end. Even a 2ms latency jitter can produce erratic hitreg that annoys seasoned competitive players.

Also, your family may be surfing on your same Internet connection. That will jitter your game around badly.
Your sister starts Netflix somewhere in the house? Network jitter.
Your mom browses the news? Network jitter.
So sometimes jitter is from Internet sharing.

But we can still "undo" and "repair" network jitter and bufferbloat near the remote end -- e.g. an intermediary server very close to the remote gaming server. Read more:

The Possible Fix For Some ISPs

So -- we need an open source software developer to step up to the plate to help us out.

We need to merge a network conditioning app (latency smoothing / ping dejittering) with a gaming VPN app (such as command line WireGuard VPN). This app can run on any intermediate server you purchase (like a VPS web hosting service, or somebody distant friend's low-jitter FTTH connection).

It's not that complicated software development -- combining a network conditor app & a VPN app into one app would be a killer app for fixing high-ping-jitter ISPs. Your own latency-dejittering gaming VPN app!

I would like to see somebody has to fork the source code of existing network conditioners & existing WireGuard VPN app, and merge their source code, to produce a killer esports-fixer app. Adjust latency, add/remove latency, add/remove ping dejittering, near-lagless WireGuard VPN to a better route, to fix more most hitreg problems. Whammo the sweet spot of gaming servers, perfectly in the middle of the latency playing field. You software devs, make an app for it!

The current best DIY gaming VPN software is WireGuard (see wireguard.com/compilation/ ), especially when installed on your very own fast web hosting service (such as VPN).

1. Routing of a Bad ISP:
Favourite Game -> Your Router -> Your ISP -> Crappy ISP Routing -> Game Server

RESULT: bad random hitreg
pros: easy
cons: bad hitreg



2. VPN Fixing Bad ISP Routing:
Favourite Game -> Your Router (VPN entry point) -> VPN over Your ISP -> VPN Provider Server Nearest ISP -> Routing over VPN Provider's Network -> VPN Provider Server Nearest Game Server (VPN Exit Point) -> Game Server

RESULT: less random hitreg
pros: can improve hitreg but you have to win the VPN lottery
(Test at least 3 different fast *paid* VPN providers, using the most lagless gaming-friendly WireGuard VPN protocol. This is the best way to find a VPN that has lower lag than your ISP routing -- it depends on your location.)
cons: doesn't fix jitter, see below



3. VPN Unable to Fix ISP Jitter:
Favourite Game -> Your Router (VPN entry point) -> VPN over Very Badly Jittering ISP -> VPN Provider Server Nearest ISP (bad jitter not fixed) -> Routing over VPN Provider's Network (bad jitter not fixed) -> VPN Provider Server Nearest Game Server (VPN Exit Point) -> Game Server

RESULT: bad random hitreg
cons: Most VPNs can't fix ISP jitter, you have to be lucky


4. Network Conditioned VPN (Theoretical Commercial VPN Provider):
Favourite Game -> Your Custom Jitter-Correcting VPN Router (VPN entry point) -> VPN over Very Badly Jittering ISP -> VPN Provider Server Nearest ISP (bad jitter not fixed) -> Routing over VPN Provider's Network (bad jitter not fixed) -> VPN Provider With Jitter-Correcting Exit Point (VPN Exit Point) -> Game Server

RESULT: Beautifully consistent hitreg
pros: Holy Grail fix for high-jitter ISPs (overloaded cable, Starlink, oversubscribed DSL, etc)
cons: Not yet commercially available but technically possible. Requires a software developer



5. DIY Network Conditioned VPN (Do-It-Yourself):

Favourite Game -> Your Custom Jitter-Correcting VPN Router (VPN entry point) -> VPN over Very Badly Jittering ISP -> Your purchased VPS server nearest gaming server (bad jitter not yet fixed) -> Custom jitter-correcting VPN client software you install on your VPS server (VPN Exit Point) -> Game Server

RESULT: Beautifully consistent hitreg
pros: Holy Grail fix for high-jitter ISPs (overloaded cable, Starlink, oversubscribed DSL, etc)
cons: Not yet commercially available but technically possible. Requires a software developer

NEW UPDATE (2023) due to users doing exploits.

Not Considered Cheating: Symmetric packetdelay
Some game companies (and I) don't mind if a user symmetrically delays their FTTH to match their DSL/Cable peers, since that makes prediction a lot less wonky if you intentionally handicap to get the same algorithmic behaviors as other people in your local region game servers. For some, it is a lot easier running packetdelay app on an opensource router (e.g. OpenWRT) than to switch to a VPN provider (to add intentional lag to equalize your latency with peers) -- same end result of latency self-equalization.

Considered Cheating: Asymmetric packetdelay
But, using very heavily asymmetric packetdelayers to trigger an exploit (e.g. a game that doesn't detect for unusually asymmetric ping) -- is currently considered cheating. It is possible for game engines to detect asymmetric latency, through various algorithms that measures ping in one direction (from both ends) and comparing, and using heuristics (over long term) to automatically redflag if there's heavy asymmetry. Some game engines MAY ban you if you do this, others haven't upgraded theirs to detect this. This is considered an exploit.

NOTE TO GAME COMPANIES: It (just about) is possible to detect asymmetric latency by various techniques, and whitelist things like Hughesnet (satellite download + dialup upload combo) while blocking very noticeably heavily asymmetric latency cheats. By doing this, timestamp-based asymmetric latency detection is possible. This is challenging with imprecise clock synchronization without GPS-accurate timestamps on both ends. But not impossible, since heavily asymmetric latency will often eventually fingerprint itself (and detectable by heuristics/AI/etc). Valve and VAC should add centralized master clocks that is relatively resistant to asymmetry-latency cheats. By having a latency-compensating VPN, it makes it less tempting for people to cheat via asymmetric-latency tricks -- fingerprinting shows up if browser-based lag behaviors are not in sync with steam-based lag behaviors and are not in sync with gameserver-lag behaviors (e.g. selective asymmetric latency shows up like a christmas tree in multiple-channel timestamp synchronization!). So games should use multiple timestamp sync APIs that run through separate apps (via Windows OS, via VAC, and via in-game), to resist filtering by router-based selectivity. Therefore, a symmetric-latency-jitter-compensating VPN is considered kosher by some game companies that I discussed to, but none currently exist yet. Much like how making Netflix available reduced the need to Bittorrent, we badly need a fair game-company-approved latency-compensating VPN.

New BountySource Rule: The client must absolutely be game-company-approved, and not capable of allowing asymmetric latency (unless someone pulls it from github, modifies it, recompiles it with an illegal asymmetric packetdelay). Source code pull requests for asymmetric latency will be rejected.

Discussion on how to do asymmetric packetdelay is a rules violation ("no cheats" forum rule).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Chief Blur Buster » 30 Mar 2021, 02:43

Specifications: Packet Dejittering & DeBufferbloating

1. Get familiar with WireGuard, stat!
Ideally, it should be WireGuard, not OpenVPN or IPsec. WireGuard VPNs on fast paid servers are super-fast (full speed gigabit with only ~0.6ms extra network lag). WireGuard is the pinnacle of virtually lagless gaming VPN protocols, so it's usually the creme of choice for gaming, and Linux now has WireGuard built-in since 2018. WireGuard is still very new, so you may have to upgrade your router. But WireGuard usually thermonuclear-blows away IPsec and OpenVPN for gaming purposes.

2. Get familiar with network conditioning concept
A lot of software use network conditioners for debugging purposes, e.g. emulation of slow Internet connections or emulation of high-latency Internet connections (customizable throttles & customizable latency). Network conditioners are built into Chrome Developer Tools or iOS Emulator. But we need to modify network conditioning to do dejittering duty instead of simulating a higher-latency Internet connection or simulating a slower Internet connection. Google what is a network conditioner and google network link conditioner source code. So we're simply commandeering network conditioner debugging tools into a network latency dejittering tool.

WireGuard client source code is located at:

Code: Select all

$ git clone https://git.zx2c4.com/wireguard-linux-compat
$ git clone https://git.zx2c4.com/wireguard-tools
3. Configurability Goals
  1. Capable of running on both local and remote VPN points to co-ordinate dejittering
  2. Ability to add/remove network lag, via a command line option.
  3. Ability to dejitter network lag in both directions, via a command line option
  4. Advanced Feature Request: Optional abiity to autodetect 95%-bellcurve or 95-percentile latency dejitter window
  5. Optional adjustable bandwidth throttle (to prevent maxing out upstream, which can create bad bufferbloat);
Local VPN entry point could be DD-WRT or Linux router, or Raspberry Pi VPN router, or any intermediary box between your PC and your existing ISP router. This VPN client also needs jitter/bufferbloat correcting algorithms.

Remote VPN exit point could be a VPS server you purchase, or a VPN provider (willing to support this custom VPN client), or a distant friend's FTTH connection with superior connection to a gaming backbone. This VPN client also needs jitter/bufferbloat correcting algorithms.

Also, some Internet connections will have more latency jitter only in one direction (more jitter in upstream direction than downstream). Most of the time you want symmetric latency dejittering, but other times. What you need is a packet buffer (tiny variable tapedelay) for incoming packets, and a separate packet buffer (tiny variable tapedelay) for outgoing packets. The gaming computer would need to maintain accurate packet timestamps (millisecond accurate at least), which would be used by the packet dejittering logic at the distant server. This is already part of the UDP protocol, so the timestamps are embedded into the packets when the Windows OS (of the gaming computer) sends them out. So this provides the information necessary (hopefully) for a distant server to undo jitter it and undo bufferbloat it. Yep, bufferbloat cancellation!

The VPN exit point should be located as close to the gaming server as possible (that's a problem left to the end-user or the VPN provider), so that the latency dejitter logic can fix all latency jitter between the gaming computer & the remote VPN exit point.

Also, some game servers feels like they automatically handicap lowest-network-lag players to level the playing field (latency compensation algorithms) so adding +5ms or +10ms lag sometimes improves hitreg. So adding intentional network latency can help level the playing field for you, and improve your hitreg.

Here's an example, perhaps a command line option such as --dejitterwindow=10 could give you a 10ms latency dejitter window, which means 20-30ms variable latency is de-jittered to a perfectly flat fixed 30ms latency at the VPN exit point (via bidirectional packetdelay buffers that cancels out latency jitter). That produces vastly superior hitreg.

Some games have a built-in dejitter/debufferbloat calculator (network latency correction algorithms) but not all of them do, and that doesn't help your worldview (erratically arriving packets = erratic view of other players, since the rendered game frames won't wait for late packets). Now, this type of custom VPN client would be a universal solution for a game -- bidirectional correction of both upstream and downstream network jitter and network bufferbloat problems.

RESULT:
- The game servers would not notice anything; no anticheat is triggered;
- This is 100% fair game ethically -- because you're improving Internet infrastructure in a DIY manner from a network jitter perspective.
- The gaming servers only see a perfectly jitter-free Internet connection, despite a very jittery ISP (as long as latency jitter is within the specification of the latency dejitter buffer window configured at the gaming VPN exit point).

TL;DR: We need a software developer volunteers to look into this to help source code modifications that enables a latency-jittering gaming VPN client. Perhaps a WireGuard client fork with a built-in network conditioner command line options?

Long Term

Gaming VPN providers need to add good latency-dejittering features, so this becomes user-friendly (no software needed except the WireGuard built into your Internet router). Having this source code made possible will allow gaming VPN providers to perform such enhancements.

Also, router-end may also need dejitter/debufferbloat too, so one may need a DD-WRT firmware or your own Linux router (or an Ethernet box between your computer and your ISP router -- a Raspberry Pi VPN router that includes the VPN jitter/bufferbloat correction algorithms too).

When every gamer is running network conditioning to the same game server, it miraculously improves gaming for everybody on the same server. Super predictable hitreg for everyone, despite some of the gamers having high-jitter.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Chief Blur Buster » 30 Mar 2021, 03:05

$500+$500 Dollar Match BountySource Incubation Offer

This is so important to esports hitreg on crappy Internet connections, that I'm willing to start a www.bountysource.com prize pot on this, dollar-for-dollar matching all donators up to the first $500+$500.

This may still yet be an advanced-user utility, but this would be quite helpful for a lot of players on high-jitter/high-bufferbloat ISPs.

Once a first taker offers, I'll open the BountySource pot and we can dollar match-for-match with actual verified money deposits there.

The first software developer (or team) who completes a WireGuard-compatible Gaming VPN Client with a built-in network conditioner (latency dejitter + debufferbloat) takes the whole bounty.

Advice/comments are welcome, since this might or might not be a megaproject. Although latency conditioning definitely technically improves gaming and reduces erratic hitreg problems in many games, it's something not yet as simplified as installing a VPN client yet.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!


amezibra
Posts: 43
Joined: 15 Apr 2020, 15:48

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by amezibra » 31 Mar 2021, 07:24

as to avoid latency polling , you would need stratum synchronised endpoints ( preferably chrony based if millisec accuracy is needed) .

next devise an encapsulation over your vpn that add a timestamp field in each packet.
then have you local/server software queue packets until they are allowed to be transmitted based on the link target virtual latency.

Qure
Posts: 5
Joined: 11 Feb 2020, 03:01

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Qure » 31 Mar 2021, 08:08

SOUNDS SUPER INTERESTING AND PROMISING!!

Hope this project will be a huge success! this will be without a doubt a complete 'game changer' for ANY competitive FPS game. :o :D

Spread the word boys, we need 'em developers asap.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Chief Blur Buster » 31 Mar 2021, 14:22

victor910 wrote:
30 Mar 2021, 08:08
you need a new IP Protocol ;)
Which has to be tunneled over existing IP.

a.k.a. a VPN! :D

I talked to a few people and this idea is certainly viable, especially for high-jitter ISPs (oversubscribed DSL, oversubscribed cable, LTE, Starlink, and even background Internet use by the same household).

Some Personal Experience In This Actual Science

I have personal experience in "jittering and bufferbloat correction" in a different protocol called XMPP, via using nterval encoding (e.g. As a deaf person myself, I am the author of XMPP XEP-0301 Extension: Real Time Text which can preserve typing cadence for Text-to-911 systems. My specification was suggested as a potential candidate on FCC.gov documents before they more-or-less standardized on IETF RFC 4103. However, several XMPP clients now include my specification for deaf individuals who like using streaming real time text. Yes, that's my name as the author at the top of the XEP-0301 spec!

Image

My protocol was successfully able to have natural non-bursty typing even on a dial-up Internet connection with a background FTP running! (You ssh/telnet users are familiar with surgy typing during high bandwidth situations -- my actual deployed XMPP XEP-0301 protocol successfully undoes this -- no need to stop your FTP transfer).

Instead, this would be done at the custom-VPN-layer level, e.g. as a WireGuard client enhancement.

The concept is that there would be small tapedelay packet buffers which can de-jitter and de-bufferbloat when the packets exits the VPN. For example, a surge of 3 packets in 24ms can be metered out at one packet every 8ms at the VPN exit point, making 128-tick servers behave more properly with hitreg. You'd have a fixed +24ms latency with perfect +0ms jitter, instead of randomized variable +0-24ms latency 24ms jitter.

As long as the jitter/bufferbloat was within your configured jitter-cancellation window.

A stable-latency connection wins more games than a variable-latency connection due to avoiding the erratic-hitreg issue (randomly overshooting/undershooting effects).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

1000WATT
Posts: 391
Joined: 22 Jul 2018, 05:44

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by 1000WATT » 31 Mar 2021, 14:58

All ingenious is simple. The idea is really great.
Chief Blur Buster wrote:
30 Mar 2021, 03:05
This may still yet be an advanced-user utility, but this would be quite helpful for a lot of players on high-jitter/high-bufferbloat ISPs.
It is difficult to imagine how a narrow circle of players will take advantage of this.
Chief Blur Buster wrote:
30 Mar 2021, 02:43
Also, router-end may also need dejitter/debufferbloat too, so one may need a DD-WRT firmware or your own Linux router (or an Ethernet box between your computer and your ISP router -- a Raspberry Pi VPN router that includes the VPN jitter/bufferbloat correction algorithms too).
Many players consider themselves to be advanced users.
The player will be faced with a task.
Search for Vps hosting, payment for hosting, choice of server operating system, settings.
It is no longer as easy as buying an off-the-shelf ipsec. What most have encountered before.

Choosing a suitable router for dd-wrt \ openwrt firmware. This is if without hardware nat. Or mikrotik with hardware nat. To get a speed of 200+ Mbps.
Firmware, installation of third-party packages. And in the end the settings.

It may become popular, years later, when it will be available to anyone in 1 click.
I often do not clearly state my thoughts. google translate is far from perfect. And in addition to the translator, I myself am mistaken. Do not take me seriously.

iceboy
Posts: 22
Joined: 04 Oct 2020, 14:22

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by iceboy » 31 Mar 2021, 15:14

It might be better to just send every packet twice, as it's likely that one of the packets doesn't suffer from latency spike. It eliminates most of the latency spike while giving the additional benefit of ending at the lower side instead of the higher side of latency variation. A typical gaming session uses 5-50kb/s bandwidth, the bandwidth is still small even when duplicating the packets for several times.

Regarding the original requirement, this can be implemented by attaching the sender's timestamp in the packets in both direction. The receiver subtracts the sender's timestamp with the one from a local clock, and maintains a 95p or 99p of the difference. The receiver then uses the maintained difference to delay any packets that arrived early.

Just like frame pacing, delaying until a specific time point is hard on a system that is not real time. It's also harder under Windows than Linux. For best results a spin loop is needed for the last 1ms, and it should be run on a system that is not heavily loaded. Also make sure that getting the timestamp does not involve a system call.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: WANTED: Software Developers: We need a Gaming VPN client with BUILT IN NETWORK LATENCY DE-JITTERING [BountySource]

Post by Chief Blur Buster » 31 Mar 2021, 15:57

iceboy wrote:
31 Mar 2021, 15:14
It might be better to just send every packet twice, as it's likely that one of the packets doesn't suffer from latency spike. It eliminates most of the latency spike while giving the additional benefit of ending at the lower side instead of the higher side of latency variation. A typical gaming session uses 5-50kb/s bandwidth, the bandwidth is still small even when duplicating the packets for several times.
Unfortunately this was tested and that does not always help.

Many ISPs have latency jitter.
- At 4000 pixels/sec, 1ms can be a 4 pixel mis-hitreg. 8ms is a 32 pixel mis-hitreg.
- Not all games are successfully able to latency-compensate for jitter.
- A router latencyspike will often affect ALL packets. Just like a frametime spike will always delay all future frames. Adding more packets is just the equivalent of giving the GPU more work (trying to render 2 frames at the same time will amplify the frametime spike). Yes, some situations will work with your idea, but in far fewer situations than a universal latency-dejittering VPN.
- Remember that Starlink has a slewing 4-to-10ms variable latency because of the continously-changing distance of the low-altitude orbiting satellites. This wrecks your aim-training on a constant latency.
- Cable and DSL can be very congested at the neighborhood node. Extra packets on overloaded node CPUs in your overloaded ISP node, will slow down ALL packets.

The two-packet technique doesn’t work with that, nor works when you’ve got minor upstream bufferbloat or delay-spikes (the middle router equivalent of a frametime spike which will always delay subsequent packets, no matter how many extra packets).

In fact, your two-packet technique sometimes makes things worse.

Remember, 1ms of ping jitter can sometimes still produce hitreg issues, depending on the game. 1ms means 1/8th random chance of missing a 128-tick (8ms per tick) packet window, creating an overshoot/undershoot hitreg issue of 8ms. (1ms cascading to 8ms), which means 32 pixel off-aim for 4000 pixels/sec mid-flick aim — an amplified use case, but we are Milliseconds Matters people, as seen in The Amazing Human Visible Benefits Of The Millisecond.

Also, it is not mutually exclusive with this algorithm. Both your and my idea can be used concurrently! You can still send two packets to reduce your jitter on certain Internet routings (not all!) that benefits from your idea, but that won’t give you a near-zero jitter like my VPN idea (at least from VPN-to-VPN section — which can still cover ~75-95% of the Internet routing to the game server, for a cherrypicked VPN exit point nearest your favourite game servers / game backbones.
iceboy wrote:
31 Mar 2021, 15:14
Regarding the original requirement, this can be implemented by attaching the sender's timestamp in the packets in both direction. The receiver subtracts the sender's timestamp with the one from a local clock, and maintains a 95p or 99p of the difference. The receiver then uses the maintained difference to delay any packets that arrived early.
See above for why your idea won’t work as well as my idea.
iceboy wrote:
31 Mar 2021, 15:14
Just like frame pacing, delaying until a specific time point is hard on a system that is not real time. It's also harder under Windows than Linux. For best results a spin loop is needed for the last 1ms, and it should be run on a system that is not heavily loaded. Also make sure that getting the timestamp does not involve a system call.
We don’t need to worry about operating system of the local end because we just put a de-jittering VPN box on the Ethernet cable between your Windows PC and your router. Done deal!

In fact, that trick will even successfully de-jitter Internet burstiness by other members of the household (E.g. somebody web surfing / streaming / etc), if you’re on an unavoidably shared Internet connection that can’t be dedicated to your gaming computer.

Certainly, large jitterspikes (e.g 50ms) may exceed your preferred preconfigured de-jitter filter buffer window (recommended default: 16ms or 24ms window, to accomodate dejittering of 2 or 3 CS:GO ticks). But those large jitterspikes will only happen occasionally, if you’re capturing 95%-99% of your jitter in your configured jitter window.

Many gamers noticed that they get far better scores on a 40ms-lag 1ms-jitter connection than a 10ms-lag-5ms-jitter connection. Thus, more math-skilled esports gamers are willing to trade a little extra TCP/IP latency to zero-out network jitter as much as possible.

Now, if you do 2-packet technique (for specific rare situations) and if that successfully reduces jitter from 15ms to 8ms, then you can still ALSO use the de-jittering VPN to change 8ms into 0ms using a small 8ms jitter filter window. Still superior!

Initially, this is just a simple VPN box on your Ethernet cable between your gaming PC and your home router. That’s the best place for this de-jittering WireGuard VPN at the moment, because it will also de-jitter your house’s fluctuating Internet usage (e.g. your upstairs neighbour suddenly starting a Netflix stream). Sometimes we don’t have the luxury of paying for a dedicated Internet connection just for the gaming PC.

Now, in future, modified DD-WRT firmware with the built-in dejittering VPN configured as a QoS on your gaming PC’s IP address. This would do the same thing too, but initially a standalone VPN wart in the middle of an Ethernet cable between your Gaming PC and your home’s router. Whether a Linux box or a pfsense box or a Rasberry Pi VPN box, or anything sufficiently performant enough to run a de-jittering VPN. Remember, that WireGuard is a shockingly fast VPN that can go full gigabit adding only 0.6ms of latency — and uses very little processing resources.

It does not have to run on the gaming PC!

Also, I must remind people that Blur Busters make milliseonds human visible. We trailblaze why high-Hz matters.

First, it was “Humans Can’t See 30fps vs 60fps”. I wrote software in 1993 that mythbusted this almost thirty years ago. When Blur Busters started, almost nobody believed LCDs can beat CRT motion clarity (and they do regularly nowadays in the top 5% strobed LCDs — like the Oculus Quest 2 VR LCD with true real-world measured MPRT100% of a mere 0.3ms). And, today, not long ago, it was “Ha ha, Nobody Needs 240Hz”). And now a lot of people have also stopped laughing about 1000Hz — Blur Busters Law: The Amazing Journey To Future 1000Hz Displays ever since VR researchers found retina refresh rates was far beyond 1000Hz.

...Small ego moment, but... guess who we are? We are Blur Busters! Here, even single milliseconds matter — ever since we have successfully showed some situations where 1ms actually makes a human visible difference in various contexts. A lot of researchers now agree with the science/physics nowadays. After all, Blur Busters is credited in more than 20 different peer reviewed research papers, including big names (Samsung, NVIDIA, etc).

This is because I said correct things far ahead of disbelieving researchers, then they concede after reproducing what I reproduce — people in the industry call me the “Refresh Rate Einstein” for good reason. Everyone else tend to be newtonian science when we’re doing Einsteinian science in the context of temporal gaming concepts.

Obviously, if you have a packet-loss situation on a non-overloaded router link, the 2-packet system may actually help. This *could* be an added additional feature added to the de-jittering WireGuard VPN client. This won’t help all packet loss situations, but would be an additional option to help certain connections.

Also, streamers will love this software because streaming on the same connection adds a large amount of upstream jitter, creating more erratic hitreg whenever you’re streaming than when you’re not streaming. Especially with DSL connections with slow upstreams. So, this de-jittering VPN will be a big help to streamers too!

Ever since the pandemic, the esports stadiums shut down and professionals moved from low-jitter LAN gaming in stadiums and esports venue, to home playing on higher-jitter Internet connections, and some have left gaming because they can’t stand the hitreg issues.

Some are so desparate that they’re willing to pay for a de-jittering VPN client to fix hitreg issues. But this stuff already exists in scattered pieces of free open source code, they just need to be slapped together into one easy VPN client that can potentially be ported into DD-WRT into future for free.

Any questions?
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Post Reply