Option to make server wait for slowest client

Post your ideas and suggestions how to improve the game.
Post Reply
Loewchen
Global Moderator
Global Moderator
Posts: 5473
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Option to make server wait for slowest client

Post by Loewchen » Fri Mar 24, 2017 2:45 pm

Right now (14.22) when a client can no longer keep up the simulation speed with the server he either gets dropped (rare) or ends up constantly jumping over missed ticks, which usually is unplayable for the slow client.
If the host wants the slow client to still be able to participate, he manually has to slow down the simulation (/c game.speed = 0.8).

But this method has the following flaws:
  • the host has to be made aware of the issue
  • the method to slow down the game has to be known
  • the speed reduction is not automatically adapting
  • the speed reduction is not automatically removed after the slow client has left
I therefore propose developing a (deactivated by default) server setting that would make the server automatically adapt the game speed until an adjustable minimum value (e.g. 0.5 of normal speed).
Maybe even differentiate between server admins and common players.

- Greetings Loewchen

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 10619
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Option to make server wait for slowest client

Post by ssilk » Fri Mar 24, 2017 6:02 pm

Added to viewtopic.php?f=80&t=32968 Collection of Of Ideas around Multiplayer: Lobby-Features, Joining, Mod&Game-Loading, ...
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Harkonnen
Fast Inserter
Fast Inserter
Posts: 207
Joined: Fri Sep 02, 2016 9:23 am
Contact:

Re: Option to make server wait for slowest client

Post by Harkonnen » Tue May 09, 2017 3:08 pm

We actually had exactly same discussion inside the team not long ago. It has chance to appear in coming major releases.

User avatar
kizrak
Burner Inserter
Burner Inserter
Posts: 14
Joined: Thu Jul 19, 2018 1:27 am
Contact:

Re: Option to make server wait for slowest client

Post by kizrak » Thu Jul 19, 2018 4:56 pm

Where is the proper place to show my support for such an amazing awesome improvement!?! 8-)

I was trying to do this via a (soft)mod without much success: Player API: latency buffer jumps

bobucles
Smart Inserter
Smart Inserter
Posts: 1591
Joined: Wed Jun 10, 2015 10:37 pm
Contact:

Re: Option to make server wait for slowest client

Post by bobucles » Thu Jul 19, 2018 9:51 pm

It makes sense to throttle a server when no one is able to keep up and to autopause at the very least for the first player who connects. Everything beyond that is a matter of preference. Some admins may prefer to always throttle while some admins want to limit it.

Zavian
Smart Inserter
Smart Inserter
Posts: 1460
Joined: Thu Mar 02, 2017 2:57 am
Contact:

Re: Option to make server wait for slowest client

Post by Zavian » Thu Jul 19, 2018 10:09 pm

bobucles wrote:It makes sense to throttle a server when no one is able to keep up and to autopause at the very least for the first player who connects. Everything beyond that is a matter of preference. Some admins may prefer to always throttle while some admins want to limit it.
You might not want to throttle just because one user connects with a low clock speed laptop processor, but you probably want the server to auto-throttle before you get to the no-one can keep up stage. (One way to do achieve a semblance of auto-throttling currently, is to run the server on something mid range, perhaps an old 2.6 Ghz processor). But you can achieve a better and more fine-grained result if the server could autothrottle down to some admin set minimum speed.

Aslo if the server is set to auto-pause when no-one is connected, then I agree it shouldn't un-pause until the first player to connect actually finishes downloading the map.

Nidan
Inserter
Inserter
Posts: 32
Joined: Sat Nov 21, 2015 1:40 am
Contact:

Re: Option to make server wait for slowest client

Post by Nidan » Sat Jul 21, 2018 10:41 pm

Zavian wrote:Aslo if the server is set to auto-pause when no-one is connected, then I agree it shouldn't un-pause until the first player to connect actually finishes downloading the map.
I would go one step further: Even if the server doesn't auto-pause, it should pause while the first (and only the first) player is connecting

mrvn
Smart Inserter
Smart Inserter
Posts: 3862
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Option to make server wait for slowest client

Post by mrvn » Mon Jul 23, 2018 10:25 am

And you could run the server at max(0.9 * second_slowest, slowest) or similar.

Aeternus
Filter Inserter
Filter Inserter
Posts: 834
Joined: Wed Mar 29, 2017 2:10 am
Contact:

Re: Option to make server wait for slowest client

Post by Aeternus » Mon Jul 23, 2018 10:32 am

Or, if it hasn't been implemented yet, a manual slider to reduce UPS to a specific factor? It'll also allow you to slow down games for folks who want a more relaxed experience ('though honestly, Factorio's pace is fine).

mrvn
Smart Inserter
Smart Inserter
Posts: 3862
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Option to make server wait for slowest client

Post by mrvn » Mon Jul 23, 2018 11:27 am

Aeternus wrote:Or, if it hasn't been implemented yet, a manual slider to reduce UPS to a specific factor? It'll also allow you to slow down games for folks who want a more relaxed experience ('though honestly, Factorio's pace is fine).
There are mods for that. Problem is you can't click a button to slow down when you are too slow to keep up. You can't even join the game, not even as first person.

TwentyEighty
Fast Inserter
Fast Inserter
Posts: 154
Joined: Thu Jan 10, 2019 3:11 pm
Contact:

Re: Option to make server wait for slowest client

Post by TwentyEighty » Sat May 18, 2019 11:28 pm

Bumping thread since my bug report got moved to technical help. This is actually a bug though, not being able to join a server if you're slower than it. Everything else in this thread is a feature request but not being able to join the -auto paused- server at all should be considered a bug.

oloklir
Burner Inserter
Burner Inserter
Posts: 5
Joined: Mon Dec 17, 2018 6:09 pm
Contact:

Mitigating multiplayer lag spikes by server performance tuning

Post by oloklir » Fri Nov 08, 2019 10:32 am

(Non-native speaker's partially auto-translated words)
TL;DR
Factorio server application needs the dynamic & active & smooth performance tuning feature which is client friendly.
What ?
Factorio server has to tune automatically its simulation performance for clients' smooth gaming experience.
Currently, in manual way, underclocking server's CPU to about 2.0 ~ 3.0 GHz (2.5 GHz average).
Reducing [game.speed] parameter is not smooth way to deal lag spikes( = low FPS / high UPS / high jumps ).
Why ?
Factorio multiplay is the process that clients catching up the server's speed.
In other words, clients must always be faster than the server to play smooth game.
Or, the server must always be slower than clients to make clients experiencing smooth game.

However, most of server owners don't know about this fact.
Some server owners think that the server should be fast. This is common sense in normal computer world.
But Factorio server is different.

They sometimes choose the worst. They even overclocks their server's CPU.
Rather, the server's CPU need to be properly underclocked for helping various clients' smooth game.

Too fast server will make clients uncomfortable if the base is large.
As the base grows, slow clients catching up hardly server's UPS start to experiencing lag spikes( = low FPS / high UPS / high jumps ).
Especially in situations of intense engagement, the server perceives the client's character as doing nothing while the client catching up.
If a client experiences lag spike in a dangerouse situation, the character will stop and only the threats can move, causing it to die.

Server managers often lower the [game.speed] parameter when clients are uncomfortable. However, this doesn't really help with lag spikes, it only slightly reduces the time catching up. Even in stable situations, the speed is not restored.

The most smooth way to mitigate lag spikes is to lower the server's processing speed. This can be achieved by underclocking the server's CPU.
Depending on my experience, underclocking to about 2.0 ~ 3.0 GHz (2.5 GHz average) generally satisfies a large number of clients.

However, this method affects the entire performance of the server computer, especially the map saving speed. This can make server owners be annoyed.

Factorio server application needs the dynamic & active & smooth performance tuning feature which is client friendly.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 10619
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Mitigating multiplayer lag spikes by server performance tuning

Post by ssilk » Sat Nov 09, 2019 8:07 am

What if the server-owner just wants players, that are fast enough to cope up with the server? What if the lag of a player is so much, that he should go?

Too much seen from one direction.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

oloklir
Burner Inserter
Burner Inserter
Posts: 5
Joined: Mon Dec 17, 2018 6:09 pm
Contact:

Re: Mitigating multiplayer lag spikes by server performance tuning

Post by oloklir » Sat Nov 09, 2019 9:38 am

ssilk wrote:
Sat Nov 09, 2019 8:07 am
What if the server-owner just wants players, that are fast enough to cope up with the server? What if the lag of a player is so much, that he should go?

Too much seen from one direction.
May be.

But if there is an option/command to control simulation performance or switch automatic simulation performance tuning, it will be handy for server moderators.
Not like decreasing [game.speed], which limits maximum ups and doesn't really prevents lag spikes and disables achievement.


Koub
Global Moderator
Global Moderator
Posts: 5168
Joined: Fri May 30, 2014 8:54 am
Contact:

Re: Option to make server wait for slowest client

Post by Koub » Sat Nov 09, 2019 11:03 am

[Koub] Merged into older suggestion topic about the same issue.
Koub - Please consider English is not my native language.

Post Reply

Return to “Ideas and Suggestions”

Who is online

Users browsing this forum: Google [Bot], Usul