mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
Merge pull request #31374 from MrStonedOne/highpopmode
High pop reduced MC processing mode.
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
#define CONFIG_DEF(X) /datum/config_entry/##X { resident_file = CURRENT_RESIDENT_FILE }; /datum/config_entry/##X
|
#define CONFIG_DEF(X) /datum/config_entry/##X { resident_file = CURRENT_RESIDENT_FILE }; /datum/config_entry/##X
|
||||||
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
|
#define CONFIG_GET(X) global.config.Get(/datum/config_entry/##X)
|
||||||
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
|
#define CONFIG_SET(X, Y) global.config.Set(/datum/config_entry/##X, ##Y)
|
||||||
|
#define CONFIG_TWEAK(X) /datum/config_entry/##X
|
||||||
|
|
||||||
#define CONFIG_MAPS_FILE "maps.txt"
|
#define CONFIG_MAPS_FILE "maps.txt"
|
||||||
|
|
||||||
|
|||||||
@@ -349,3 +349,26 @@ CONFIG_DEF(number/error_msg_delay) // How long to wait between messaging admins
|
|||||||
CONFIG_DEF(flag/irc_announce_new_game)
|
CONFIG_DEF(flag/irc_announce_new_game)
|
||||||
|
|
||||||
CONFIG_DEF(flag/debug_admin_hrefs)
|
CONFIG_DEF(flag/debug_admin_hrefs)
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/base_mc_tick_rate)
|
||||||
|
integer = FALSE
|
||||||
|
value = 1
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/high_pop_mc_tick_rate)
|
||||||
|
integer = FALSE
|
||||||
|
value = 1.1
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/high_pop_mc_mode_amount)
|
||||||
|
value = 65
|
||||||
|
|
||||||
|
CONFIG_DEF(number/mc_tick_rate/disable_high_pop_mc_mode_amount)
|
||||||
|
value = 60
|
||||||
|
|
||||||
|
CONFIG_TWEAK(number/mc_tick_rate)
|
||||||
|
abstract_type = /datum/config_entry/number/mc_tick_rate
|
||||||
|
|
||||||
|
CONFIG_TWEAK(number/mc_tick_rate/ValidateAndSet(str_val))
|
||||||
|
. = ..()
|
||||||
|
if (.)
|
||||||
|
Master.UpdateTickRate()
|
||||||
|
|||||||
@@ -573,3 +573,13 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
|||||||
for(var/S in subsystems)
|
for(var/S in subsystems)
|
||||||
var/datum/controller/subsystem/SS = S
|
var/datum/controller/subsystem/SS = S
|
||||||
SS.StopLoadingMap()
|
SS.StopLoadingMap()
|
||||||
|
|
||||||
|
|
||||||
|
/datum/controller/master/proc/UpdateTickRate()
|
||||||
|
if (!processing)
|
||||||
|
return
|
||||||
|
var/client_count = length(GLOB.clients)
|
||||||
|
if (client_count < CONFIG_GET(number/mc_tick_rate/disable_high_pop_mc_mode_amount))
|
||||||
|
processing = CONFIG_GET(number/mc_tick_rate/base_mc_tick_rate)
|
||||||
|
else if (client_count > CONFIG_GET(number/mc_tick_rate/high_pop_mc_mode_amount))
|
||||||
|
processing = CONFIG_GET(number/mc_tick_rate/high_pop_mc_tick_rate)
|
||||||
@@ -350,6 +350,8 @@ GLOBAL_LIST(external_rsc_urls)
|
|||||||
if (menuitem)
|
if (menuitem)
|
||||||
menuitem.Load_checked(src)
|
menuitem.Load_checked(src)
|
||||||
|
|
||||||
|
Master.UpdateTickRate()
|
||||||
|
|
||||||
//////////////
|
//////////////
|
||||||
//DISCONNECT//
|
//DISCONNECT//
|
||||||
//////////////
|
//////////////
|
||||||
@@ -386,6 +388,7 @@ GLOBAL_LIST(external_rsc_urls)
|
|||||||
if(movingmob != null)
|
if(movingmob != null)
|
||||||
movingmob.client_mobs_in_contents -= mob
|
movingmob.client_mobs_in_contents -= mob
|
||||||
UNSETEMPTY(movingmob.client_mobs_in_contents)
|
UNSETEMPTY(movingmob.client_mobs_in_contents)
|
||||||
|
Master.UpdateTickRate()
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/client/Destroy()
|
/client/Destroy()
|
||||||
|
|||||||
+25
-1
@@ -232,9 +232,13 @@ ALLOW_HOLIDAYS
|
|||||||
##This is currently a testing optimized setting. A good value for production would be 98.
|
##This is currently a testing optimized setting. A good value for production would be 98.
|
||||||
TICK_LIMIT_MC_INIT 500
|
TICK_LIMIT_MC_INIT 500
|
||||||
|
|
||||||
##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother.
|
##Defines the ticklag for the world. Ticklag is the amount of time between game ticks (aka byond ticks) (in 1/10ths of a second).
|
||||||
|
## This also controls the client network update rate, as well as the default client fps
|
||||||
TICKLAG 0.5
|
TICKLAG 0.5
|
||||||
|
|
||||||
|
##Can also be set as per-second value, the following value is identical to the above.
|
||||||
|
#FPS 20
|
||||||
|
|
||||||
## Comment this out to disable automuting
|
## Comment this out to disable automuting
|
||||||
#AUTOMUTE_ON
|
#AUTOMUTE_ON
|
||||||
|
|
||||||
@@ -361,3 +365,23 @@ MINUTE_TOPIC_LIMIT 100
|
|||||||
|
|
||||||
## Allow admin hrefs that don't use the new token system, will eventually be removed
|
## Allow admin hrefs that don't use the new token system, will eventually be removed
|
||||||
DEBUG_ADMIN_HREFS
|
DEBUG_ADMIN_HREFS
|
||||||
|
|
||||||
|
###Master Controller High Pop Mode###
|
||||||
|
|
||||||
|
##The Master Controller(MC) is the primary system controlling timed tasks and events in SS13 (lobby timer, game checks, lighting updates, atmos, etc)
|
||||||
|
##Default base MC tick rate (1 = process every "byond tick" (see: tick_lag/fps config settings), 2 = process every 2 byond ticks, etc)
|
||||||
|
## Setting this to 0 will prevent the Master Controller from ticking
|
||||||
|
BASE_MC_TICK_RATE 1
|
||||||
|
|
||||||
|
##High population MC tick rate
|
||||||
|
## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2
|
||||||
|
## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like
|
||||||
|
## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%.
|
||||||
|
## (As an aside, you could in theory also reduce the effect of anti-lag heuristics in the base tick rate by setting it to something like 0.5)
|
||||||
|
HIGH_POP_MC_TICK_RATE 1.1
|
||||||
|
|
||||||
|
##Engage high pop mode if player count raises above this (Player in this context means any connected user. Lobby, ghost or in-game all count)
|
||||||
|
HIGH_POP_MC_MODE_AMOUNT 65
|
||||||
|
|
||||||
|
##Disengage high pop mode if player count drops below this
|
||||||
|
DISABLE_HIGH_POP_MC_MODE_AMOUNT 60
|
||||||
|
|||||||
Reference in New Issue
Block a user