Client performance issues shouldn't impact other player's performance

Alright, it’s understandable that some people can’t have decent pcs, because they lack the money or any other reason, that’s perfectly fine.
However, it means that when you are playing with these players, your game will also lag too. I play diplomacy games a lot (the kind with 500-800 pop caps), so I don’t mind the lag late game in these cases.
But when I get into an unranked casual 3v3/4v4 arabia game and the game lags like crazy in the very first seconds, it gets on my nerves.
The way this lag works makes it very hard for melee units to fight (the microstutter every second/half second), ranged become even more op (and let’s not talk about siege), gates glitch, trade units become stuck in markets, etc…
In all multiplayer games I’ve played so far, another player’s FPS won’t have any impact on the other player’s performance. I’m really frustrated to see that it isn’t the case in AOE2 DE.
Pls fix

4 Likes

The simple solution is to change the benchmark requirements, 1000-1100 to play 1x1 and 2x2, 1200 to play 4x4 and 3x3.

1000 score is a bad score for any multiplayer experience given how this game demands only one CPU core and little stress to the GPU, there are player that made treir transition from voobly with their old phenom or intel core due that have low IPC and lag terrible with 50+pop.

1 Like

That’s just a workaround, and wouldn’t affect unranked games anyway, since the latter doesn’t require players to pass a performance test

1 Like

Its often not the pc but the connection causing those lags. i play on my laptop sometimes were i barely reach 1000 points perfectlly fine 4vs4 while friends with better systems causing lags because their internet ist bad.

1 Like

Biggest reason of lag are the worse servers. My PC is fine, but sometimes the game starts randomly lagging.

Increasing the benchmark dont solve the issue.

2 Likes

It probably isn’t the servers, since when the affecting player leaves the game (red clock), the game stop lagging. Maybe it could be their connection, but I often play with a friend that leaves in Brazil (I live in europe) and his connection is not great, yet we have no issues. And the lags never pop up in ranked games, since this mode filters out lower performing player.
In any case it’s the lagging player that should be the only one suffering from his issues, not the others.

That is how it meant to be because of the servers. When i am lagging, my opponent isnt always lagging. So if you have lag, it seems to be between you and the server, not because other players and the server.

I play a lot of team games, and diplomacy games, and it’s always the same thing.
If one player lags, everyone will complain of the performance being terrible
if he leaves, then the game runs smoothly for everyone (apart from late game lag in diplomacy games, but that’s a given considering the high popcap)

1 Like

I do not really know why this happens, but I guess the games we play are not really played on the servers. I think a lot of arising issues can be explained if we assume that the servers just collect the commands from the players and distribute them to all involved players. Then every PC have to calculate how that command of player X affects its current state and update that. So in that case it is just the same like in HD days, but not connection to one another directly, but over the server.

What I expected to be implemented when they said, that there will be servers involved was a server, that calculates all the logic and sends the state of the game to every client (or the difference in the state to the last one the server send, to minimize the send data), and as soon as someone send a command (like “red sends scout to position x,y”) a new state will be calculated and send. This would mean that the bad performance of one player would affect everyone, so clearly this is not the case.

Has anyone done a controlled test to verify that all players experience the fps of the lowest fps player?

I can do this, as I have 2 copies of the game, but it’s a bit of a hassle to set up. I have a 144hz screen and a PC that will achieve 144fps at the start of a game, so I can create an unranked lobby, and have one player on that PC, and another player on a PC that only has a 60hz screen, so will run at 60fps. Is the claim that my 144hz PC will only achieve 60fps because it will be limited by the fps of the other PC if I do this test?

I have played 1v1s where i have lag (for no reason), but my enemy dont have lag. For me this is the proof that the statement of DankSulphur is false.

The if 1 player lag, then everyone lags, is part of the pre-DE games. With servers now it is if one player lags, others wont notice lag.

So if everyone lags, then it is only be possible as the server is lagging.

but then if the server is lagging, why would a red clock player leaving remove the lag from the game ? In this case, the server wouldn’t be at fault.

Trying that should shed us more light on the subject matter.

So how does that work ? There are servers ? Or are there no servers ? :smiley:

If there is a server and a player has bad internet, they would experience input delay, desyncs, and other issues, while the other players would interact normally with the server. Back in aoc/HD/voobly, since everything was p2p the clients all experienced issues in high latency cases. This shouldn’t be the case with servers.

Okay, I just tested with a lobby where I used two PCs to play as both players, one with the Xbox version of the game running with a 60hz screen, one with the Steam version running with a 120hz screen. They ran at different frame rates, I got 120fps on the powerful PC at the same time as the less powerful PC was running in the same lobby at 60fps.

The issue at stake has little to do with either framerate or connection capabilities. Rather, it has to do with each player’s computer’s capacity to handle updates (moving units, attack actions, etc.) rapidly enough. To avoid desyncs, where the state of the game is different from player to player, every client computer is required to keep up to date with every single update. The more units on the field and the more action, the more updates there are to be processed, hence the ‘lag’ in late game. Other clients are forced to wait for new updates until all involved clients have processed the current ones. Your client may still keep rendering frames in the meanwhile, but it is just not getting instructions to make anything move. Essentially, it records smooth video of a stage on which none of the actors move. Only the bottlenecking client should experience an actual drop in framerate. When the player with the bottlenecking client resigns or is defeated, the other clients do not have to wait for it to process updates anymore, and the game may proceed more smoothly until another client becomes the new bottleneck.

The primary factor is all the clients’ computing capabilities (CPU speed). The slower the CPU, the slower it will process updates. Clients’ internet connections and server speed are only secondarily involved in receiving and transmitting updates, not in processing them. Of course, if one of the clients’ internet connections is hampered or the server overburdened, then updates may simply not be getting through in a timely manner, resulting in the same problems.

This is not at all an easy problem to be resolved and would require major engine changes. I’m all in favour of that, of course, but it is not an easy fix.

1 Like

On the other side: Why does 1v1 games lag for only one player, while the other player dont notice anything?

Wow, thank you for the the in depth explanation
so if I understand, this is essentially some sort of unintended lag compensation for lower end PCs, that reduces the speed for every other player to match the bottleneck CPU speed.

I guess this can’t be fixed altogether, best we can hope for is path finding optimization which is the worst offender in terms of lag spikes.

Maybe you had 30 tabs open in chrome ? maybe you were playing on a southeast asia server while living in iceland ? I never had issues in 1v1 myself, so I wouldn’t know.

That is more plausible as the type of thing that is happening, but I think it can’t be a full explanation. It can’t possibly use a fully synchronous model where an individual update for a single action must be acknowledged as having been processed by all clients before the next update can be sent out, the throughput of processing actions would be far too slow. It must be an asynchronous model, but with a limit to how many updates it will allow to remain unacknowledged.

I don’t see that it is possible to avoid each client having different states some of the time. Suppose two players are playing each other, and they both have 200ms ping to the server. Player 1 performs an action that will change what player 2 sees on his screen. 100ms later, player 2 performs an action that will change what player 1 sees on his screen. On player 2’s PC, his own action must happen first, because his PC has no way of knowing at that point in time that player 1 did something 100ms earlier, as that action can’t be received until 400ms after player 1 performed it. It can’t constantly wait to process each action, just in case the other player did something first that has yet to complete the trip to the server and onwards to the other player.

No, everything is running fine on my PC, only the game is lagging for no reason. If i ask opponent, they dont have lag in most games. Server is also close, so that isnt the issue either.

For me this is the most common kind of lag.

Yeah, you are right. I didn’t mention it but updates are likely accumulated and exchanged around 10 times per second. Still, I think my analysis stands. All accumulated updates will have to be processed by all clients before the game proceeds onto the next wave of updates.