Live data from Hacker News

Riot Games: Artificial Latency for Remote Competitors

lolesports.com

11–20 of 160 posts

Re: Riot Games: Artificial Latency for Remote Competitors

#11

Reminds 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

#13
post #11

Reminds 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.

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.

Re: Riot Games: Artificial Latency for Remote Competitors

#14

A 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

#15

Reminds 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.

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.

I work in this space and although true (this is called modal dispersion), there are compensation techniques always used in termination equipment to 'handicap' or mitigate these occurrences. Not perfect, but very, very, very small deltas. Unsure if it's enough to act upon without knowing the length from output to next input.

Re: Riot Games: Artificial Latency for Remote Competitors

#16
post #4

The part I was interested about the most was glossed over. In what situation can this happen? > we realized that there was a calculation error that only manifested in scenarios where the actual ping was significantly lower than the target latency. In this situation the actual latency would be considerably higher than what is displayed on the overlay on the player's screens.

Knowing the classic Riot Games MO: I’d bet money there was a plus instead of a minus that made it through code review, and they’re being intentionally vague to save face.

Re: Riot Games: Artificial Latency for Remote Competitors

#17
I love the intent and actions behind this post. Finding an unfair bug mid-tournament is serious, and it takes courage and integrity on the part of the technical team to

-listen to the players

-investigate past what your own analytics are saying

-find and fix the bug under time pressure

-and disclose the (potentially embarrassing!) initial mistake

I think the article itself could have been worded better though. It didnt feel very clear. As a reader, I want to know what went wrong, how it was handled, and feel confident that you are on top of the issue. All the stuff about "why we chose our network topography" reads as details at best, justification/excuses at worst.

Re: Riot Games: Artificial Latency for Remote Competitors

#18

A 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.

MSI is "just" 50% of international tournaments

imo it's very serious tournament

Re: Riot Games: Artificial Latency for Remote Competitors

#19
post #11

Reminds 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.

Probably because such a system is not provably fair – you can’t prove your system is truly random.

Re: Riot Games: Artificial Latency for Remote Competitors

#20
post #13
post #11

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.

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. The wire lengths could be 3 meters different and only make a 10ns difference. Not sure that would matter all that much.

Post reply on HN