TickBudgetInMilliseconds
TickBudgetInMilliseconds
#Overview
name: TickBudgetInMilliseconds
The value of this variable can be defined or overridden in .ini config files. 2
.ini config files referencing this setting variable.
It is referenced in 9
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of TickBudgetInMilliseconds is to control the time allocation for the Epic Online Services (EOS) SDK’s tick function. This setting variable is used to manage the performance impact of EOS operations within the game engine.
TickBudgetInMilliseconds is primarily used by the EOS SDK Manager and related subsystems, including the Online Subsystem EOS and EOS Voice Chat plugin. These modules are part of the online services integration in Unreal Engine 5.
The value of this variable is typically set in the engine’s configuration files (GEngineIni) and can be accessed or modified through the EOS Settings system. It’s also initialized in various places within the EOS-related code.
This variable interacts with other EOS configuration options, particularly those related to platform initialization and management. It’s often used alongside other settings like RTCBackgroundMode, bEnableOverlay, and various platform-specific options.
Developers should be aware that:
- Setting TickBudgetInMilliseconds too low may limit EOS functionality.
- Setting it too high might impact overall game performance.
- The value is in milliseconds, so even small changes can have noticeable effects.
Best practices for using this variable include:
- Start with a conservative value (e.g., 1 ms) and adjust based on performance needs.
- Monitor the impact on both EOS functionality and overall game performance when changing this value.
- Consider different values for development/debug and release builds.
- Ensure the value is appropriate for the target platform and the game’s performance requirements.
- Document any changes to this value and the reasoning behind them for future reference.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/Custom/EOS/DefaultEngine.ini:21, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
0
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:26, section: [/Script/OnlineSubsystemEOS.EOSSettings]
- INI Section:
/Script/OnlineSubsystemEOS.EOSSettings
- Raw value:
0
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:376
Scope (from outer to inner):
file
function const FEOSSDKPlatformConfig* FEOSSDKManager::GetPlatformConfig
Source code excerpt:
GConfig->GetBool(*SectionName, TEXT("bWindowsEnableOverlayOpenGL"), PlatformConfig->bWindowsEnableOverlayOpenGL, GEngineIni);
GConfig->GetBool(*SectionName, TEXT("bEnableRTC"), PlatformConfig->bEnableRTC, GEngineIni);
GConfig->GetInt(*SectionName, TEXT("TickBudgetInMilliseconds"), PlatformConfig->TickBudgetInMilliseconds, GEngineIni);
GConfig->GetArray(*SectionName, TEXT("OptionalConfig"), PlatformConfig->OptionalConfig, GEngineIni);
UE_LOG(LogEOSSDK, Verbose, TEXT("Loaded platform config: %s"), *PlatformConfigName);
return PlatformConfig;
}
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:584
Scope (from outer to inner):
file
function IEOSPlatformHandlePtr FEOSSDKManager::CreatePlatform
Source code excerpt:
}
PlatformOptions.TickBudgetInMilliseconds = PlatformConfig->TickBudgetInMilliseconds;
PlatformOptions.TaskNetworkTimeoutSeconds = nullptr;
EOS_Platform_RTCOptions PlatformRTCOptions = {};
PlatformRTCOptions.ApiVersion = 2;
UE_EOS_CHECK_API_MISMATCH(EOS_PLATFORM_RTCOPTIONS_API_LATEST, 2);
PlatformRTCOptions.PlatformSpecificOptions = nullptr;
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Public/IEOSSDKManager.h:34
Scope: file
Source code excerpt:
bool bWindowsEnableOverlayOpenGL = false;
bool bEnableRTC = true;
int32 TickBudgetInMilliseconds = 1;
TArray<FString> OptionalConfig;
};
DECLARE_MULTICAST_DELEGATE_OneParam(FEOSSDKManagerOnPreInitializeSDK, EOS_InitializeOptions& Options);
DECLARE_MULTICAST_DELEGATE_TwoParams(FEOSSDKManagerOnDefaultPlatformConfigNameChanged, const FString& NewName, const FString& OldName);
DECLARE_MULTICAST_DELEGATE_TwoParams(FEOSSDKManagerOnPreCreateNamedPlatform, const FEOSSDKPlatformConfig& Config, EOS_Platform_Options& Options);
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:132
Scope (from outer to inner):
file
function FEOSSettings::FEOSSettings
Source code excerpt:
: SteamTokenType(TEXT("Session"))
, RTCBackgroundMode(EOS_ERTCBackgroundMode::EOS_RTCBM_KeepRoomsAlive)
, TickBudgetInMilliseconds(0)
, TitleStorageReadChunkLength(0)
, bEnableOverlay(false)
, bEnableSocialOverlay(false)
, bEnableEditorOverlay(false)
, bPreferPersistentAuth(false)
, bUseEAS(false)
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:181
Scope (from outer to inner):
file
function const FEOSSettings& UEOSSettings::ManualGetSettings
Source code excerpt:
LexFromString(CachedSettings->RTCBackgroundMode, *RTCBackgroundModeStr);
}
GConfig->GetInt(INI_SECTION, TEXT("TickBudgetInMilliseconds"), CachedSettings->TickBudgetInMilliseconds, GEngineIni);
GConfig->GetInt(INI_SECTION, TEXT("TitleStorageReadChunkLength"), CachedSettings->TitleStorageReadChunkLength, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bEnableOverlay"), CachedSettings->bEnableOverlay, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bEnableSocialOverlay"), CachedSettings->bEnableSocialOverlay, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bEnableEditorOverlay"), CachedSettings->bEnableEditorOverlay, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bPreferPersistentAuth"), CachedSettings->bPreferPersistentAuth, GEngineIni);
GConfig->GetBool(INI_SECTION, TEXT("bUseEAS"), CachedSettings->bUseEAS, GEngineIni);
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/EOSSettings.cpp:213
Scope (from outer to inner):
file
function FEOSSettings UEOSSettings::ToNative
Source code excerpt:
LexFromString(Native.RTCBackgroundMode, *RTCBackgroundMode);
}
Native.TickBudgetInMilliseconds = TickBudgetInMilliseconds;
Native.TitleStorageReadChunkLength = TitleStorageReadChunkLength;
Native.bEnableOverlay = bEnableOverlay;
Native.bEnableSocialOverlay = bEnableSocialOverlay;
Native.bEnableEditorOverlay = bEnableEditorOverlay;
Native.bPreferPersistentAuth = bPreferPersistentAuth;
Native.bUseEAS = bUseEAS;
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:73
Scope: file
Source code excerpt:
FString SteamTokenType;
EOS_ERTCBackgroundMode RTCBackgroundMode;
int32 TickBudgetInMilliseconds;
int32 TitleStorageReadChunkLength;
bool bEnableOverlay;
bool bEnableSocialOverlay;
bool bEnableEditorOverlay;
bool bPreferPersistentAuth;
bool bUseEAS;
#Loc: <Workspace>/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Public/EOSSettings.h:115
Scope (from outer to inner):
file
class class UEOSSettings : public URuntimeOptionsBase
Source code excerpt:
/** Used to throttle how much time EOS ticking can take */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="EOS Settings")
int32 TickBudgetInMilliseconds = 0;
/** Set to true to enable the overlay (ecom features) */
UPROPERTY(Config, EditAnywhere, BlueprintReadOnly, Category="EOS Settings")
bool bEnableOverlay = false;
/** Set to true to enable the social overlay (friends, invites, etc.) */
#Loc: <Workspace>/Engine/Plugins/Online/VoiceChat/EOSVoiceChat/Source/EOSVoiceChat/Private/EOSVoiceChat.cpp:147
Scope (from outer to inner):
file
function void FEOSVoiceChat::Initialize
Source code excerpt:
PlatformOptions.Flags = EOS_PF_DISABLE_OVERLAY;
PlatformOptions.CacheDirectory = nullptr;
PlatformOptions.TickBudgetInMilliseconds = 1;
PlatformOptions.IntegratedPlatformOptionsContainerHandle = nullptr;
PlatformOptions.TaskNetworkTimeoutSeconds = nullptr;
#if UE_EDITOR
//PlatformCreateOptions.Flags |= EOS_PF_LOADING_IN_EDITOR;
#endif