kovarex wrote:How can server handling of traffic help it, when one of the client is slow. As long as the latency is same for everyone, they still have to wait for the data from the slow client to be transferred to the server.
Because factorio is P2P, my guess is that every player upload actions to every other player. Now with 4 players that is 3x required upload for each person. Server-client situation keeps burden of uploading to everyone to server only and clients only need to send less traffic.
Next, because there is no such thing as internet neutrality some connections are just STUPIDLY shaped now with P2P and everyone sending everything to everyone, expose those BS shapers and increase lag by much. When serve is on good provider that have good route to every other guy it will lag much less than competing ISP that shape each others traffic. Since every traffic is server-client, their routers won't know that they play together because they are not routing traffic between them.
Not talking about overloaded routes! Some routes get overloaded by huge amount of services using same line, but some server in the middle of nowhere where routes are clear can route traffic faster than using overcrowded routes. With server-client we can try different host to see who has best case scenario host. Also NOBODY except host need to have firewall rules and public ip!
If someone have stupidly disproportional internet 90/1 then it would be as if host had 1mbit and that itself can be limiting, but it might be enough for client mode gaming. P2P bad! Client-server good! Transfering HUGE files? P2P good! Client server - bad (unless you have fast host)!
I have to play game with people who have 50/50 or better internet in order to have playable experience in P2P multiplayer. You said it correctly this is LAN multiplayer and not internet, so don't expect you can pull off P2P on the internet. Upload speed is route to hell and back on some internet connections.
First google result from stack exchange:
P2P
Pros:
- No need for a central server: this makes it much cheaper, and more viable for low-budget indie games.
- Scales very well(up to a certain point when the average client just cant handle the bandwidth).
- Very good for data distribution: Suits games where user-created content is dynamically synced.(also just look at torrents)
- More Stable: It can never happen that the server is having problems and no-one can play(implementation dependent).
Cons:
- Hard to implement: much harder to create a solid P2P architecture, than a server-client.
- Its very hard to prevent cheating in such a system, unless you designate an authoritative peer, but then again you lose much of the benefits of scaling well.
- Security is hard to achieve.
-
A clients internet connection can influence the game for others too.
-
Latency is usually much bigger(tough can be better when joining an internet game with multiple people from a lan network for example).
Server-Client:
Pros:
- Easy to implement: Its as straightforward as it gets.
- If implemented well, scales extremely well.(if the work can be distributed on multiple servers)
- Cheating can be avoided easily.(relative to P2P)
-
Lower Latency: If the server has a solid connection the latency can be extremely low.
-
A player's internet connection never affects the other's game.
Cons:
- Costs you money to run the servers: definitely not suitable for a free game.(unless you let the players set up a dedicated server, but that might be a security problem)
- If the server has problems, everyone has.