[1.1.5] Disconnect during join of multiplayer headless server
Posted: Fri Jan 22, 2021 6:10 pm
I'll try to pull my straw and report some bugs I've expreinced.
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 joining, the server first saves the map, client downloads, loading the map, but then when starting to catch up the bar stops immidiately, halfway for a moment. Then a message "You have been disconnected" appears.
After some experimenting, I have realized that the process behind the disconnect is that when the client loads the game, it swaps a lot and therefore does not communicate with the server fast enough, which leads to the server dropping the client.
Putting the server under cpulimit of half of its current load immideiately after the client have finished downloaded the map does completely eliminate the problem. More, when I successfully joined I can drop cpulimit without being affected. The conclusion is that the client is not too slow to hang on to the server, which I've seen similar problems push, but that the join process itself is flawed, not taking into account that a client can be unresponsive for a while and working hard to join and catch up. Disconnecting after 5 minutes joining sequence is not fun.
A borderline similar problem occures sometimes when I've trying to save the game in a non-paused state. The minute-long saving sequence makes the server drop the client. I pull an own report on this.
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 joining, the server first saves the map, client downloads, loading the map, but then when starting to catch up the bar stops immidiately, halfway for a moment. Then a message "You have been disconnected" appears.
After some experimenting, I have realized that the process behind the disconnect is that when the client loads the game, it swaps a lot and therefore does not communicate with the server fast enough, which leads to the server dropping the client.
Putting the server under cpulimit of half of its current load immideiately after the client have finished downloaded the map does completely eliminate the problem. More, when I successfully joined I can drop cpulimit without being affected. The conclusion is that the client is not too slow to hang on to the server, which I've seen similar problems push, but that the join process itself is flawed, not taking into account that a client can be unresponsive for a while and working hard to join and catch up. Disconnecting after 5 minutes joining sequence is not fun.
A borderline similar problem occures sometimes when I've trying to save the game in a non-paused state. The minute-long saving sequence makes the server drop the client. I pull an own report on this.