Network lag/issues Megathread

This topic regroup many users report about lag / desync / heavy network usage.
Eleventh Hour Games is investigating the possible issues.

What:
You can have lag spike on certain condition, they “freeze” your game for an amount of time, this is desync.
When:
It only affect online session, it affect all server regions it doesn’t matter if you are near/far from the server, your ping is not the issue. However your ping raise after entering a map this is normal ( not so ).
Why:
Your ISP connection is asymmetric (unless you have professionnal connection), it mean your upload bandwith can’t sustain the amount of data Last Epoch is requiring.

  • If you have a ADSL connection it does affect you much more.
  • If you are many playing on the same network or if someone is using your network for other reason, it does impact performances.
  • If you play a character that spawn many minions, → impact the game.
  • If you play arena or area with a lot of enemy spawn → affect performance.
  • If you play with someone else it also has → huge performance impact.
  • More you have damage source/sec could impact performance.

Speculation ( My opinion )

  • It is possible the game send/ask data too often.
  • The lag is mostly related to data sent to the server.
  • Packet are not prioritized.
  • Cosmetic packet can’t be dropped.
  • Serialisation issue?
  • Some data from packet may be discarded ( default values )
  • Some pseudo random element may be pre calculated with guid generated from server
    to serve/spawn thing with the same manner on client/server (determinist functions) that doesn’t cause divergence between client and server.
  • Some data may be processed by client side but the game could be protected with a anticheat software?
  • Packet/archive could use a fast compression lib? At least could be helpful when entering zone.

Some links related:
https://forum.lastepoch.com/t/extreme-desync-lag/51909/26

https://forum.lastepoch.com/t/why-is-this-game-using-so-much-data-and-bandwith/53825/9

https://forum.lastepoch.com/t/minions-causing-tremendous-amount-of-lag/52294

https://forum.lastepoch.com/t/cannot-start-echoes-and-randomly-get-disconnected-halfway-through-if-they-start/53066/17

https://forum.lastepoch.com/t/really-bad-desync-also-causes-other-apps-on-the-network-to-suffer/53111/4

https://forum.lastepoch.com/t/arena-echoes-cause-seriuos-lag/54521

https://forum.lastepoch.com/t/noticeable-input-delay-with-only-42-ping-in-online-mode/53579

https://forum.lastepoch.com/t/serious-rubber-band-lag-today/52977/20

https://forum.lastepoch.com/t/character-lag/54748

https://forum.lastepoch.com/t/severe-lag-or-desync-when-starting-echos/53494/8

https://forum.lastepoch.com/t/lag-spikes/51886

https://forum.lastepoch.com/t/insane-lag-in-south-american-server/54575

https://forum.lastepoch.com/t/serious-rubber-band-lag-today/52977/3

https://forum.lastepoch.com/t/lag-when-playing/54145

https://forum.lastepoch.com/t/online-multiplayer-lagging-with-42-ping/53005/8

https://forum.lastepoch.com/t/very-high-latency-in-arena-echos-and-mass-spawning/55061

https://forum.lastepoch.com/t/cannot-play-for-days-now-beacouse-of-lags/55062

https://forum.lastepoch.com/t/multi-bugs/55070

16 Likes

Thanks you for making this post !

I agree to what you said and your conclusions but i have 3 more points to add :

First, the game is using far too much bandwith (more than any game i play).

Second, it seems like projectiles cause the most lag. The void mobs that spawns at beacons wich throw projectiles are causing insane lag for my low bandwith camarades, and also profane flesh have same issue.

Also my wraith fire build, wich is essentially 16 wraith throwing 2 firewall per second is top much Projectiles and they can’t even play a second.

Third, while it affects more people with low bandwith, it seems liké it also lag the server instance and consequently the whole group when in party off 3 or 4.

Tldr ; game is using too much bandwith, and serveurs instances get overloaded fast.

It’s not in specific cases, there is too much interactions that causes lag, it’s the general networking aspect that have issue. Send too much data it’s insane.

2 Likes

Thanks for making this thread, I’ll add some points that I noticed:

  • happens a lot more during coop monoliths, particularly in arena monoliths
  • my friend was using numlock to autocast sigils of power, this was making the issue a lot worse for both of us
  • in game lag can cause other applications (e.g. discord) to also experience lag
2 Likes
  • in game lag can cause other applications (e.g. discord) to also experience lag

Yes this affect entirely your network bandwith. It can also cause issues to your TV / phone calls…
(edit formatting)

It is defenetly not bandwith problem.
I have stable connection with 500mb/s, both download and upload. And still I cant play the game.
The problem for me is huge desync between server and client. I dont see any actions on my client, but they do happen on server. The only thing I see on client is my hp and mana bars. So after last patch I usually just running around with 0 hp and unable to do anything at all.
I cant pickup items, I dont see any of my spells, no enemies and all that stuff. But if I try to pickup items they will be in my inventory after re-logging.

1 Like

For me other applications are kinda working ok, for my friend with same connection but low end pc they are just breaking and lagging.
Its like league of legends client - always kills my discord

Ok, after further investigation on my own i discovered the game use Forge from BeardedManStudios as networking solution.

Screenshot

I think the cause is the use of reliable RPC, however i can’t/won’t verify because the game is compiled via IL2CPP.
Further investigation can be done using wireshark to check if same packet gets resent many times.
Here you can find links of the issue:
https://github.com/BeardedManStudios/ForgeNetworkingRemastered/issues/410
https://github.com/BeardedManStudios/ForgeNetworkingRemastered/issues/157#issuecomment-395186718

Nice find, certainly seems suspicious and the network flood behavior matches up to what we see. If true though it’s likely going to be a long fix to refactor this stuff out :frowning: Unless maybe there’s a quicker fix/patch to the rtt calculation packet flood they can deploy.

Just read the github issue and it looks really disheartening. Nice find :slight_smile:

About the discord issue. It’s because the game is using so much bandwith it makes voice lag.

I have no issue personnaly, but m’y Friend with bad bandwith lag on discord while loading echoes and when there is too much action on screen.

I have noticed that when playing as a transformed Druid, the rubberbanding becomes unbearable, but when I go back to the human form it is stable for a while.

Really sad to read that issue, I assume there will be a lot of hard work ahead to fix this issue.

have the devs said anything about the desync/lag issue? just curious

For me since Monday things have gotten much worse again. Today every single monolith causes very bad desync, and even loading the monolith takes forever and I can see that my network gets super slow during the load time. I don’t think we have a full explanation here, even with the RPC library theory. For some allowing P2P traffic is apparently solving things, for others they’re achieving this via VPN. For me a VPN helped for a few days and now does absolutely nothing. I don’t understand what’s changing here.

To devs: you have a group of people experiencing this bug all very invested in seeing it solved. If you engage and ask us to help you test, we will (I will). If you delay, frustration will reach the point that we no longer care and move on. I’m pretty close to that point. Consider engaging on your discord server for some real time testing/repros we could do.

4 Likes

I understand it’s an huge issue and hard to solve. The thing i’m scared about is it should be affecting :

  • all 4 players parties. Not related to bandwith, everyone will get lags → unplayable for everyone

  • 3 players parties → same, unplayable for everyone

  • 2 players parties → players with low bandwith will not be able to play without having lag often (it happens with my Friend)

  • 1 player in multiplayer → player with low bandwith will have issues playing the game fully since they will die a lot and loose a lot of echoes retard, and can’t do beacons and waves.

So it means no one Can realistically play 4p and 3p.
2p is playable if people have good bandwith, but will lag with high projectiles builds.
1p is playable if you have good bandwith.

I got lots of people pretty interested in the game, but some can’t play with low bandwith, and we can’t play together. It’s really problematic because otherwise the game is great.

Demokdawa, this is not necessarily related to low bandwidth. I have a 1.2Gbp/s connection (ok, on wifi it’s closer to like 100Mb/s). Tracking all of this could really help rule out the extraneous factors from the common ones. Some people mention necro + minions, I’ve had this happen on spellblade with no minions as well as necro, etc.

But anyway, devs have to prioritize, and maybe this isn’t worth the effort given the current impact. We don’t have that kind of visibility unfortunately.

WE don’t have that kind of visibility, but i Nevers Seen someone says that they play at 3 or 4 players without lags.

I have personnaly no issues solo with my bandwith (same as you), and it’s the same for every Friend with good bandwith i have thats play LE.

Only Friends that get issues in solo are thé one with low download/upload speeds.

But when you play as a group, when thé lag become too high, everyone get desyncs at thé same Time, for thé same duration, etc… 3p and 4p doesn’t Care about bandwith, it just lags for everyone the same.

When in play minions projectile builds, only thé Friends (in 2p) with low bandwith lags out. I Nevers get affected by their builds whatsoever.

Are we sure it’s the original Forge they’re using, and not Forge Alloy? If it is indeed the original Forge, at least that should be an easy change for them to hop over to Forge Alloy, which theoretically addresses at least one of the concerns (If I read the commits properly)

Somewhere in ILSPY:

// BeardedManStudios.Forge.Networking.BasePacketComposer
using BeardedManStudios.Forge.Networking.Frame;
...

In ForgeAlloy unit test reference this way:

using Forge.Networking.Messaging;

In BeardedManStudios ForgeNetworking

using BeardedManStudios.Forge.Networking;

We can assume it’s the BeardedManStudios version.

Some tests I’ve done:

  1. Hopping around different VPN servers seems to have slightly different behavior and sometimes alleviates how often the desync happens. Seems very inconsistent for me though.
  2. Only my pc running Last Epoch has general network degradation whenever Last Epoch does its thing. Laptop on the same wifi sees perfectly normal performance.
  3. Killing Last Epoch immediately sees the rest of the network recover.

Before 3) I suspected maybe my ISP was doing something after detecting p2p traffic and throttling just the device/ip it was coming from. But now I think it must be the device’s network stack itself (or maybe interaction with the wifi/modem) that’s getting hung up, as the response time is too fast as soon as Last Epoch is no longer doing its thing. It can’t be my ISP connection in general since other devices on the same wifi keep working fine.

Tried running wireshark and then network analyzer. For TCP I just see some retries happening, but not that many packets. For UDP, almost all of my communication was happening with a server at 216.223.24.98 which must be the game server. Usually my machine is sending 100-200 UDP packets per second, but during the lag spike this went up to over 2000 packets per second, hung around 1500 pps for about 20-30 seconds, and then subsided to 100 pps. During this time my ping to google went to 2s, 3s, and even timed out for a few iterations.

Over my ~1 minute of packet capture I sent out 41k UDP packets to the game server and received 100k. I didn’t examine the download side, kind of assuming that’s not the issue, but that needs sanity checking.

Analyzing the packets themselves the payloads are generally pretty tiny. I can identify some Binary FrameStream objects (CONTROL_BYTE=130, payloadLengths of 40, 46, 58, 65) with various RouteIds like CREATED_OBJECT_ROUTER_ID and RPC_ROUTER_ID.

However the majority of the packets I sent have a payloadLength=17 and the first byte doesn’t seem to be a CONTROL_BYTE. The first byte value is all over the place in these packets, but the values are varying only slightly from packet to packet. But I’m not sure of their source as they don’t seem to follow the FrameStream format. Sample payloads here look like:

8D 7A 07 00 00 00 00 00 1D 39 00 00 00 00 00 00 37
92 7A 07 00 00 00 00 00 1E 39 00 00 00 00 00 00 37
95 7A 07 00 00 00 00 00 B3 38 00 00 00 00 00 00 37

Notably, I don’t see any Ping packets (CONTROL_BYTE=132), so not certain this is the bug referenced above. I saved the packet dumps (.cap and .matp) if someone from LE wants to take a look.

1 Like

Sweet! I’d say that’s actually good news. Then maybe they should look into Forge Alloy as a quick and painless replacement. Another thread that should probably be associated with this. They closed it already without communication, still very much an issue.
https://forum.lastepoch.com/t/connecting-to-online-characters-bugged/54312/24