I’m playing Elder Scrolls Online and the game is working very well, constant FPS 60 on 60hz monitor, no problems.
However, when pvp battles are tough (cyrodiil), I get stutterings and even server disconnections. I thought it was game-side. I talked with other players and they didn’t experience it. I then switched to W11 and noticed there were no stutterings, everything was fluid.
It only happens when there’s loads of action going on.
So it’s linux. How can I troubleshoot this? Seems the internet connection, the way the game is connected - is to blame.
I’m using Manjaro XFCE, default ethernet kernel driver.
It is a built-in feature. Windows is mainly used on the Desktop, therefore it is that way.
Because it is optional. Usually it resolve each dns request and doesn’t cache it. Linux is mainly used in the server environment and a dns cache on the same system is not necessary and can even be counterproductive. Usually there is a dns server with a cache in the same network, which is shared by a mount of servers.
Usually there is also no problem with that, only if your public dns server of your provider cannot keep up with your requests, thus slows you down. If your game client would request real IPs and not a Domain, then it would eliminate that.
Sadly, I still get stutterings. Maybe it’s a bit better, but ping frequently goes from 60-100 to 500-999+ during massive fights.
It happens in Linux only. Game’s ping in W11 is much more stable and there’s no delay.
During big fights with more than 40 players on the screen at once, they move erratically. You see them in one place then there’s like 0.5-1 sec delay and they reappear somewhere else. In W11, the action is fluid.
When fights are smaller, like up to 20 players or so, there’s no stuttering, no delay.
Thanks for the explanation for dnsmasq. I will leave it enabled, since I use Linux as a desktop PC and not server.
Hm… that reminds of Bufferbloat now when I rethink. Idk what exactly the difference between TCP/UDP requests are in your scenario, but it leads me to the conclusion that your router or something on route, cache a lot for some reason and therefore delay the requests/respond. Usually that is prevented by AQM, in other words: prioritization on the router. Here are the ports to prioritize on the router: Support | The Elder Scrolls Online
Secondly you can adjust the ECN (default is 2):
sudo systctl -w net.ipv4.tcp_ecn=1
0: ECN is disabled.
1: ECN is enabled for outgoing connections (TCP packets sent may have the ECN flag set).
2: ECN is enabled for incoming connections (TCP packets with the ECN flag set are accepted).
Well I hope you didn’t open them inbound, but outbound. Usually a software firewall would block outbound ports. A Router blocks always all inbound ports, and don’t open them if you no valid reason.
I said: Prioritize them. Something like that (example fritzbox):
God please, no. Telnet, really? Use nmap. Anyway it is good they are closed inbound, they should be open outbound what is usually the case.
Bear with me, I’m an outsider when networks are concerned. I can set basic stuff, I know what’s what, but when it gets a little bit complicated, I’m lost.
Anyhow, the settings I made in the router didn’t make any much difference in the game. It still stutters, sometimes is better, but I cannot say it’s because of the ports I did in the settings.
Port forwarding means: Make the port public available aka inbound ports. The website say outbound. So actually it is the opposite, and can be really dangerous. Don’t do that. Only if server is running and others need to connect to you.
That was expected.
However. I don’t know exactly what Windows does differently than Linux in your specific case. But it should also be clear that Wine/Proton is only a translation layer, and not a 1:1 copy of Windows. In any case, you can analyze the traffic, but I don’t own the game and you only have rudimentary knowledge in the area. I don’t know how I could help without being there locally.
Thanks. I did what that tutorial suggested, step by step. Not sure why they used something that was opposite of what was needed, or even potentially dangerous.
I have found something called Advanced Port Triggering in my router. It says:
This page allows configuration of dynamic triggers to specific devices on the LAN.
This allows for special applications that require specific port numbers with bi-directional
traffic to function properly. Applications such as video conferencing, voice, gaming,
and some messenging program features may require these special settings.
Hopefully that’s the place. That’s the only thing I have closest to ‘prioritization’. Nothing else.
I understand, yes, that’s true. I can hope maybe some of our guys on this forum plays ESO and can share some insight.
Not all routers have that setting. Or it may be called something else like QoS (Quality of Service). I don’t think your router is the problem anyway given that it works fine in Windows.
It might be worth trying the r8168 dkms driver instead of the default r8169 kernel driver;
sudo mhwd -i pci network-r8168
If that doesn’t help, or makes things worse, it’s easily removed again with;
linux65-r8168: install reason has been set to 'explicitly installed'
modprobe: FATAL: Module r8168 not found in directory /lib/modules/6.5.13-4-MANJARO
Aside:- You can test which ports are exposed to the Internet using Steve Gibson’s Shields Up suite of online tools. Despite being obviously Windows-centric in terminologies, the site has existed for many years and is well-regarded.