From b2934a27ba021a1bda564545c8036fae2afa4de2 Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 20 Sep 2025 14:06:58 -0700 Subject: [PATCH] In-Game server should use dedicated_server_step --- src/client/game.cpp | 18 ++++++------------ src/defaultsettings.cpp | 14 +++++++------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/client/game.cpp b/src/client/game.cpp index f133c634c6..76966df00f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2567,20 +2567,14 @@ inline void Game::step(f32 dtime) ZoneScoped; if (server) { - float fps_max = !device->isWindowFocused() && simple_singleplayer_mode ? - g_settings->getFloat("fps_max_unfocused") : - g_settings->getFloat("fps_max"); - fps_max = std::max(fps_max, 1.0f); - /* - * Unless you have a barebones game, running the server at more than 60Hz - * is hardly realistic and you're at the point of diminishing returns. - * fps_max is also not necessarily anywhere near the FPS actually achieved - * (also due to vsync). - */ - fps_max = std::min(fps_max, 60.0f); + float server_step; + if(!device->isWindowFocused() && simple_singleplayer_mode) + server_step = 1.0f / std::max(g_settings->getFloat("fps_max_unfocused"), 1.0f); + else + server_step = g_settings->getFloat("dedicated_server_step"); server->setStepSettings(Server::StepSettings{ - 1.0f / fps_max, + server_step, m_is_paused }); diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index c27da7988e..bcf321881e 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -440,7 +440,7 @@ void set_default_settings() settings->setDefault("strict_protocol_version_checking", "false"); settings->setDefault("protocol_version_min", "1"); settings->setDefault("player_transfer_distance", "0"); - settings->setDefault("max_simultaneous_block_sends_per_client", "40"); + settings->setDefault("max_simultaneous_block_sends_per_client", "160"); settings->setDefault("motd", ""); settings->setDefault("max_users", "15"); @@ -496,9 +496,9 @@ void set_default_settings() settings->setDefault("debug_log_level", "action"); settings->setDefault("debug_log_size_max", "50"); settings->setDefault("chat_log_level", "error"); - settings->setDefault("emergequeue_limit_total", "1024"); - settings->setDefault("emergequeue_limit_diskonly", "128"); - settings->setDefault("emergequeue_limit_generate", "128"); + settings->setDefault("emergequeue_limit_total", "4096"); + settings->setDefault("emergequeue_limit_diskonly", "512"); + settings->setDefault("emergequeue_limit_generate", "512"); settings->setDefault("num_emerge_threads", "1"); settings->setDefault("secure.enable_security", "true"); settings->setDefault("secure.trusted_mods", ""); @@ -560,9 +560,9 @@ void set_default_settings() settings->setDefault("screen_w", "0"); settings->setDefault("screen_h", "0"); settings->setDefault("performance_tradeoffs", "true"); - settings->setDefault("max_simultaneous_block_sends_per_client", "10"); - settings->setDefault("emergequeue_limit_diskonly", "16"); - settings->setDefault("emergequeue_limit_generate", "16"); + settings->setDefault("max_simultaneous_block_sends_per_client", "40"); + settings->setDefault("emergequeue_limit_diskonly", "64"); + settings->setDefault("emergequeue_limit_generate", "64"); settings->setDefault("max_block_generate_distance", "5"); settings->setDefault("sqlite_synchronous", "1"); settings->setDefault("server_map_save_interval", "15");