Live data from Hacker News

Riot Games: Artificial Latency for Remote Competitors

lolesports.com

101–110 of 160 posts

Re: Riot Games: Artificial Latency for Remote Competitors

#101
post #85

Earlier quoted context omitted.

I think the symmetric delay here makes sense, since you're trying to simulate the latency of a (likely) symmetric connection between another client and the server. If you only add latency on the transmission, then 2 actions taken at the same time by players with different amounts of physical latency will be processed at different times. If we assume the game clocks on each client and the server are in sync, then this…

You can accomplish this by putting it all on the client, all on the server, or a mix of both (what they chose). For all on the server, you could add latency right after receiving data from the client, but before game code processes it, and before sending data to the client. That said, there likely were technical considerations involved in their decision to do a mix of both.

That's a good point, I hadn't thought of having independent send a receive delays on the server, simulating a delayed connection from the client's perspective without having it participate.

I now wonder too what those technical considerations are, since having the client add latency requires trusting the client to add the delay and not cheat.

Re: Riot Games: Artificial Latency for Remote Competitors

#102

Earlier quoted context omitted.

You can accomplish this by putting it all on the client, all on the server, or a mix of both (what they chose). For all on the server, you could add latency right after receiving data from the client, but before game code processes it, and before sending data to the client. That said, there likely were technical considerations involved in their decision to do a mix of both.

That's a good point, I hadn't thought of having independent send a receive delays on the server, simulating a delayed connection from the client's perspective without having it participate. I now wonder too what those technical considerations are, since having the client add latency requires trusting the client to add the delay and not cheat.

[deleted]

Re: Riot Games: Artificial Latency for Remote Competitors

#103
post #56

Earlier quoted context omitted.

This strategy is commonly referred to as being in the class of “latency hiding” as it doesn’t actually improve latency, it just allows you to reduce apparent latency. In practice it’s still useful but I think it’s mainly useful because it allows for local input to be buffered significantly less than if you were to compensate for lag by adding buffering only. However, that is not always useful. It is mainly useful in…

LoL is not using lockstep. Lockstep has two big disadvantages for a competitive game. Tt requires both client to have the full game state to run the simulation, which makes creation of maphacks trivial. The second issue with lockstep is that if one player is lagging, all players are lagging, which is also not something you'd like to have in a fast paced competitive game.

I can definitely see why the maphack thing would be an issue generally, but in the case of a broadcast esports competition is it so significant? They seem to have put an awful lot of engineering effort into their special lag system for this tournament, so I assume they at least have some pretty decent budget. So, presumably they could create a special client (possibly even sending the competitors locked down hardware). This seems like it would let them do some things we'd normally consider impossible or 'magic' -- assume both sides of the pipes are going to tell you the truth about everything...

Re: Riot Games: Artificial Latency for Remote Competitors

#104

Earlier quoted context omitted.

> because they wanted the audience of the Chinese market. Or maybe because the tournament would've been shit without them? Who wants to watch an international tournament with only 1 of the clearly top 2 regions represented? WHole thing would've been a forgone conclusion at that point.

Yes, the tournament would have been worse without them. What I'm saying is that does not somehow justify penalizing the other teams and the tournament writ large to "even" the playing field if you value competitive integrity. As the article states, increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event. They're physically there. It only makes it more fair for RNG…

> increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event

Can't agree. Those teams had an advantage when playing RNG. Taking away that advantage does actually make the event more fair for them, even though they are being disadvantaged.

Re: Riot Games: Artificial Latency for Remote Competitors

#105

Earlier quoted context omitted.

Yes, the tournament would have been worse without them. What I'm saying is that does not somehow justify penalizing the other teams and the tournament writ large to "even" the playing field if you value competitive integrity. As the article states, increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event. They're physically there. It only makes it more fair for RNG…

> increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event Can't agree. Those teams had an advantage when playing RNG. Taking away that advantage does actually make the event more fair for them, even though they are being disadvantaged.

Could you clarify what you mean by "those teams had an advantage when playing RNG"? I may have missed something. I'm not sure what advantage you're referring to.

Re: Riot Games: Artificial Latency for Remote Competitors

#106
post #8

As context this was a big international fiasco. Nobody was acting maliciously but fans of RNG and other teams felt wronged. RNG didn't want to attend due to covid restrictions on travel but Riot really wants Chinese viewers in international tournaments, hence all this online latency work. Pros on other teams were lied to by the false latency information which must be almost paranoia inducing to be told it's only 35ms…

You can in fact have that magical time-travel approach to get apparent latency lower than the real number. Keep a history of the game state at every tick, so you can roll back to any previous instant. If real latency from one client is 50 ms, and you're targeting 35 ms, you roll back the game state by 15 ms each time input comes in from that client, and re-run the game logic from that point forwards and send the resu…

I really dislike games which rewind state based upon latency. It penalizes people with good ping and can lead to very weird game states where a large rollback can cause teleportation of a laggy player as seen by non laggy players.

Team Fortress 2 is particularly bad where high latency players can teleport around or you can shoot and hit a laggy player but it doesn’t register by the server due to a rollback. Some players purposely exploit this function by artificially increasing their ping values to absurd levels (700ms or more) which makes them very hard to hit. Many community TF2 servers enforce maximum ping limits for this reason.

Most notably high pings are used to exploit when playing as the Spy class due to the fundamental purpose of the class is to get behind you to backstab you. If you have 700 ping can abuse the fact that you you can get behind players due to the game being out of sync and if you can backstab a player the server will roll back and kill the non-laggy player even though you were no where near behind them from their non-laggy perspective.

Re: Riot Games: Artificial Latency for Remote Competitors

#107

Earlier quoted context omitted.

LoL is not using lockstep. Lockstep has two big disadvantages for a competitive game. Tt requires both client to have the full game state to run the simulation, which makes creation of maphacks trivial. The second issue with lockstep is that if one player is lagging, all players are lagging, which is also not something you'd like to have in a fast paced competitive game.

I can definitely see why the maphack thing would be an issue generally, but in the case of a broadcast esports competition is it so significant? They seem to have put an awful lot of engineering effort into their special lag system for this tournament, so I assume they at least have some pretty decent budget. So, presumably they could create a special client (possibly even sending the competitors locked down hardware…

There are pretty regular esports scandals involving cheating. Heck, we've seen players bring their cheats in via special drivers embedded in their peripherals (which is why almost every serious in-person tournament provides peripherals + PC and does not allow the player access to them outside of supervision).

Re: Riot Games: Artificial Latency for Remote Competitors

#108

Earlier quoted context omitted.

> because they wanted the audience of the Chinese market. Or maybe because the tournament would've been shit without them? Who wants to watch an international tournament with only 1 of the clearly top 2 regions represented? WHole thing would've been a forgone conclusion at that point.

Yes, the tournament would have been worse without them. What I'm saying is that does not somehow justify penalizing the other teams and the tournament writ large to "even" the playing field if you value competitive integrity. As the article states, increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event. They're physically there. It only makes it more fair for RNG…

Fairness isn't a perk applied to a team, it is a property of the game.

Unless "ability to travel during a pandemic" is considered a skill for this game, it should not be factored into the competition. So, if teams who can't travel to be game are going to be included, then the host must find a way to provide a fair game. This means that remote and local players should have the same latency.

Re: Riot Games: Artificial Latency for Remote Competitors

#109

They used a complex and buggy solution when a simple solution exists: Use the `tc` traffic control [0] program to configure the Linux kernel to add a fixed amount of latency to traffic from the local players [1]. If the game server does not run on Linux, they could put a Linux bridge/router in front of it. [0] https://en.wikipedia.org/wiki/Tc_%28Linux%29 [1] https://serverfault.com/a/841865

`tc` would give you non-deterministic microbursts that would be hard to quantify as to whether they impacted competitive integrity. This is an incredibly complex problem if they actually care about millisecond level precision in small duty cycles.

Re: Riot Games: Artificial Latency for Remote Competitors

#110

Earlier quoted context omitted.

> increasing the ping doesn't make it more fair for the other teams because they actually traveled to the event Can't agree. Those teams had an advantage when playing RNG. Taking away that advantage does actually make the event more fair for them, even though they are being disadvantaged.

Could you clarify what you mean by "those teams had an advantage when playing RNG"? I may have missed something. I'm not sure what advantage you're referring to.

Without the ping adjustment the travelling teams would have a ping far lower than RNG. That is not fair, even if it is out of the teams control.
Post reply on HN