Earlier quoted context omitted.
I never understood why they didn't use randomized length micro batches to solve this. Instead of processing orders instantly, wait between 200ms and 500ms and then process all orders that came in that window in random order. Then being 5ms closer to the server wouldn't matter.
Probably because such a system is not provably fair – you can’t prove your system is truly random.
Riot Games: Artificial Latency for Remote Competitors
21–30 of 160 posts
Re: Riot Games: Artificial Latency for Remote Competitors
#22Decwars used to "equalize" latency for consoles verses dialups (in the 1970's)...
Re: Riot Games: Artificial Latency for Remote Competitors
#23And this is a little different, but Riot found that playing on ethernet instead of wifi made you about 1% more likely to win games. https://web.archive.org/web/20160814131032/http://na.leagueo...
Re: Riot Games: Artificial Latency for Remote Competitors
#24Earlier quoted context omitted.
That sounds like a complex solution. Sometimes a dumb solution that works good enough is better than a complex solution that _probably_ can't be exploited.
It's complex on one end to reduce complexity on the other -- the trading companies wouldn't have to worry about millisecond optimizations if they trading batches were 200ms windows. So the wire lengths wouldn't matter but also not mattering is the processor, memory, software, etc. for the trading companies. Seems like a good tradeoff. And honestly the wire thing probably isn't real. Light moves 30cm in a nanosecond.…
Re: Riot Games: Artificial Latency for Remote Competitors
#25A good software lesson here. They built a complex system to tweak tens of ms (at most) of ping to equalize. And they had a bug and it disadvantaged on team. Thus, they have to replay due to unfairness introduced by Riot itself. They could've gone Option 1 - all teams at their natural ping. While it wouldn't be as perfect in theory, it wouldn't have resulted in replaying matches. Plenty of other esports and fighting g…
There is a huge difference between 0 ping and 35 ping though, particularly in pro-level LoL. It is strategic but that ping can be the difference between flashing a skillshot or not, and swinging the whole course of a teamfight. Of course 35 ping is not THAT bad and I agree, while unfair, it wouldnt be the end of the world, it's not even Worlds, just MSI, an invitational event.
Re: Riot Games: Artificial Latency for Remote Competitors
#26A good software lesson here. They built a complex system to tweak tens of ms (at most) of ping to equalize. And they had a bug and it disadvantaged on team. Thus, they have to replay due to unfairness introduced by Riot itself. They could've gone Option 1 - all teams at their natural ping. While it wouldn't be as perfect in theory, it wouldn't have resulted in replaying matches. Plenty of other esports and fighting g…
Sure, people play with ping disparity in tons of competitive games, but that's because there's not really an alternative for online play. It's "play with a ping disparity" or "don't play at all".
Once there is more widespread reliable alternative, which Riot seems to be working toward in their own game tournaments, maybe we'll see if this tolerance persists in competitive tournaments.
Re: Riot Games: Artificial Latency for Remote Competitors
#27Reminds me of the cable lengths for black boxes connected to the network in Wall Street. Each cable is the same length regardless of which computer is closer to the access point.
I never understood why they didn't use randomized length micro batches to solve this. Instead of processing orders instantly, wait between 200ms and 500ms and then process all orders that came in that window in random order. Then being 5ms closer to the server wouldn't matter.
Re: Riot Games: Artificial Latency for Remote Competitors
#28Earlier quoted context omitted.
Probably because such a system is not provably fair – you can’t prove your system is truly random.
You would use an external source of randomness, which you can definitely prove is sufficiently random.
• Pre-publish, for each time batch, a public key. You could publish lists of these well in advance.
• Let everyone submit, alongside each order, a number arbitrarily selected by them. It does not matter how they select the number, but it would be simpler if everyone chose distinct numbers.
• When order processing is done, do it by the order of closeness of the submitted number to the private key. Publish the private key after order submission is closed.
• Everybody can now verify that the order of processing is indeed by the order of the previously secret private key, and everybody can verify that the private key corresponds to the previously published private key.
Re: Riot Games: Artificial Latency for Remote Competitors
#29Reminds me of the cable lengths for black boxes connected to the network in Wall Street. Each cable is the same length regardless of which computer is closer to the access point.
I never understood why they didn't use randomized length micro batches to solve this. Instead of processing orders instantly, wait between 200ms and 500ms and then process all orders that came in that window in random order. Then being 5ms closer to the server wouldn't matter.
(though the matching algorithm varies)
Re: Riot Games: Artificial Latency for Remote Competitors
#30Earlier quoted context omitted.
Perhaps apocryphal/silly, but amusing nonetheless. Story goes that this means you want to be in the computer furthest from the interconnect because light travels slightly faster in straight fiber than in coiled fiber.
Not apocryphal; IEX has 38 miles of wire in their building. Tom Scott did a video a few years ago about it: https://www.youtube.com/watch?v=d8BcCLLX4N4