This week, for issue #41, oof2win2 returns with a somewhat more technical article about what exactly can go wrong when trying to connect to multiplayer games and how to potentially solve these issues. If you’ve ever wondered why Factorio wouldn’t let you join your friends’ multiplayer game, this article might have some explanations for you!
Continue reading: https://alt-f4.blog/ALTF4-41/
Alt-F4 #41 - Title loading, please stand by ...
-
- Long Handed Inserter
- Posts: 58
- Joined: Fri Aug 28, 2020 12:07 pm
- Contact:
- BlueTemplar
- Smart Inserter
- Posts: 3234
- Joined: Fri Jun 08, 2018 2:16 pm
- Contact:
Re: Alt-F4 #41 - Title loading, please stand by ...
https://alt-f4.blog/ALTF4-41/
(Oh, maybe it uses them for authentification with Wube's servers if you use Wube's matchmaking ? EDIT : Oh, for those "pingpong" NAT-punching servers I guess ?)
----
Huh, reimplementing TCP functionality on top of UDP just seems... ugh.
Wait, isn't this basically what QUIC does too ?
https://en.wikipedia.org/wiki/QUIC
https://vt200.com/tcp-congestion-cubic-quic-bbr/
----
Can't wait until IPv6 is the default expectation and we can forget about this whole NAT thing !
A side result of Factorio now able to use Steam "MP" : I can't connect to most people any more, because they don't need to bother setting up port forwarding, like described here !
https://wiki.factorio.com/Multiplayer#S ... layer_Game
(This is why SteamWorks is cancer.)
----
I really don't get why Factorio is using this "MMO" approach, as this basically screws *everyone* (eventually).
I guess that then Wube can take "pride" in silly statistics like "Our game can easily run with hundreds of players !",
despite the fact that only the "survivors" with good enough hardware remain, and these games tend to be unmanageable messes anyway ?
At the same time this "server first" approach screws typical Factorio games by forcing admins to manually adjust game speed !
Resulting in the stuff like in https://alt-f4.blog/ALTF4-41/#what-to-d ... ll-of-that
While it should be the other way around, it's the (rare) people running MMO Factorio servers that should be the ones that should have to deal with the issue of kicking out the players that slow the game too much !
(Since when you run a MMO, you need admins anyway !)
(Eventually, automatically, using a game modification ?)
Why would a DNS outage have any effect on a feature that doesn't use domain names ?> Sometimes, your network may not be the best. It can be due to many things, such as maintenance from your ISP or a power outage of your DNS’s datacenters.
(Oh, maybe it uses them for authentification with Wube's servers if you use Wube's matchmaking ? EDIT : Oh, for those "pingpong" NAT-punching servers I guess ?)
----
Huh, reimplementing TCP functionality on top of UDP just seems... ugh.
Wait, isn't this basically what QUIC does too ?
https://en.wikipedia.org/wiki/QUIC
Could you say CUBeIC ?> QUIC improves performance of connection-oriented web applications that are currently using TCP.[2][9] It does this by establishing a number of multiplexed connections between two endpoints using User Datagram Protocol (UDP)
> When we started implementing the file transfer all I had was a rough idea of "we're sending some packets and waiting for confirmations, somehow we know how many unconfirmed packets there should be at one time and that value is called cWnd". So Wikipedia came to the rescue and told me that a prety decent algorithm to determine cWnd is called CUBIC.
https://vt200.com/tcp-congestion-cubic-quic-bbr/
Also :> CUBIC, a modern congestion control algorithm that is used by default by the Linux kernel
> [...]
> Some say QUIC is the successor to TCP, but it's not true. QUIC is the evolution of TCP+TLS+SPDY that rolls those three protocols into one and makes them smarter.
> [...]
> Interestingly, that component that is fundamental to the performance of present-TCP - the CUBIC congestion control algorithm - is part of QUIC. CUBIC is currently the default congestion control algorithm for QUIC.
IIRC that's what Factorio already actually does ?> Fortunately, there is another technology that may tromp both QUIC and TCP CUBIC: BBR.
>
> CUBIC and congestion control mentioned so far use packet loss as an indicator of congestion. But there is another method that may be superior. That is to monitor latency changes of the link.
----
Can't wait until IPv6 is the default expectation and we can forget about this whole NAT thing !
A side result of Factorio now able to use Steam "MP" : I can't connect to most people any more, because they don't need to bother setting up port forwarding, like described here !
https://wiki.factorio.com/Multiplayer#S ... layer_Game
(This is why SteamWorks is cancer.)
----
Not really, it's specific to lockstep MP, which other games use too (especially RTSes !)> “Catching up” is a process very specific to Factorio.
Another option in games is to for the server to automatically slow down the game.> With Factorio 0.14.0, Factorio servers no longer paused the game for all players if one player’s computer takes too long to process an update. This means that if you have an older computer, a server will no longer wait for you to catch up in processing. This is very useful on larger servers which can have tens to hundreds of players online at once, as nobody has to wait for one single person so they can play the game.
I really don't get why Factorio is using this "MMO" approach, as this basically screws *everyone* (eventually).
I guess that then Wube can take "pride" in silly statistics like "Our game can easily run with hundreds of players !",
despite the fact that only the "survivors" with good enough hardware remain, and these games tend to be unmanageable messes anyway ?
At the same time this "server first" approach screws typical Factorio games by forcing admins to manually adjust game speed !
Resulting in the stuff like in https://alt-f4.blog/ALTF4-41/#what-to-d ... ll-of-that
Oh, yeah, let's force the players to do this by hand, when the server could do these calculations and run these commands for them instead !> The best idea is to start going down from 1 in increments of 0.1 or 0.05, such as 0.9, 0.8, 0.7 etc. This command will globally reduce the game’s speed, so there will be less updates per second to calculate.
While it should be the other way around, it's the (rare) people running MMO Factorio servers that should be the ones that should have to deal with the issue of kicking out the players that slow the game too much !
(Since when you run a MMO, you need admins anyway !)
(Eventually, automatically, using a game modification ?)
Not exactly, too crappy of a GPU can bottleneck the other parts of your PC too, resulting in UPS drops... (shared memory on integrated graphics for instance !)> The reason is that Factorio doesn’t care if your GPU is a 3090 Ti or just integrated graphics, it will just tell it to “render stuff”. If it won’t render it, that’s fine.
BobDiggity (mod-scenario-pack)