Keep empty server paused until first player downloaded map
Posted: Fri Jan 22, 2021 6:34 pm
Background: I'm currently playing Space Explore with friends on a headless server. Currently the game size has reached over 600MiB and the game takes a little bit above 13 GiB of RAM for every system. It is indeed heavy and we run Global Tick Time Scale at 30UPS to free up CPU so all computers involved can play smoothly and lag-free.
When closing down the game, we have taken into habit to pause the game, because the server setting does not carry out the pausing in a good fashion. If we forget this or is dropped, we are left to painfully slow joining times.
The setting makes it do pause the game after all have left, but, it does not keep the game paused until the first player have loaded the map. It instead unpauses the game directly when someone is downloading the map. When playing with such huge maps it adds several extra minutes in catching-up time. We are already talking minutes in just loading the map, so this behaviour makes the client be very far behind the server when the loading is done and it starts catching up. It do also contribute to disconnect errors since the server is running away from a joining client. More of that in another report.
What the game properly should do, is that it should wait with unpausing until the first client are ready, meaning when the map are loaded and the client can join directly without catching up. That would save a huge amount of time.
When closing down the game, we have taken into habit to pause the game, because the server setting does not carry out the pausing in a good fashion. If we forget this or is dropped, we are left to painfully slow joining times.
The setting makes it do pause the game after all have left, but, it does not keep the game paused until the first player have loaded the map. It instead unpauses the game directly when someone is downloading the map. When playing with such huge maps it adds several extra minutes in catching-up time. We are already talking minutes in just loading the map, so this behaviour makes the client be very far behind the server when the loading is done and it starts catching up. It do also contribute to disconnect errors since the server is running away from a joining client. More of that in another report.
What the game properly should do, is that it should wait with unpausing until the first client are ready, meaning when the map are loaded and the client can join directly without catching up. That would save a huge amount of time.