Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/GameFramework
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- AActor
- AInfo
- AGameNetworkManager
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Classes/GameFramework/GameNetworkManager.h |
| Include | #include "GameFramework/GameNetworkManager.h" |
Syntax
UCLASS (Config=Game, NotPlaceable, MinimalAPI)
class AGameNetworkManager : public AInfo
Remarks
Handles game-specific networking management (cheat detection, bandwidth management, etc.).
Variables
| Type | Name | Description | |
|---|---|---|---|
| int32 | AdjustedNetSpeed | Current adjusted bandwidth per player, based on total and dynamic bandwidth | |
| float | BadPacketLossThreshold | If packet loss goes over this value, we have bad packet loss. Value is between 0 and 1. | |
| int32 | BadPingThreshold | If average ping is higher than this threshold in ms, determine the server is either delaying packets or has bad upstream. | |
| uint32: 1 | bHasStandbyCheatTriggered | Used to determine whether we've already caught a cheat or not | |
| uint32: 1 | bIsStandbyCheckingEnabled | Used to determine if checking for standby cheats should occur | |
| bool | bMovementTimeDiscrepancyDetection | Whether movement time discrepancy (speed hack) detection is enabled. | |
| bool | bMovementTimeDiscrepancyForceCorrectionsDuringResolution | Whether client moves should be force corrected during time discrepancy resolution, useful for projects that have lenient move error tolerance/ClientAuthorativePosition enabled. | |
| bool | bMovementTimeDiscrepancyResolution | Whether movement time discrepancy resolution is enabled (when detected, make client movement "pay back" excessive time discrepancies) | |
| bool | bUseDistanceBasedRelevancy | If true, actor network relevancy is constrained by whether they are within their NetCullDistanceSquared from the client's view point. | |
| float | CLIENTADJUSTUPDATECOST | CLIENTADJUSTUPDATECOST is the bandwidth cost in bytes of sending a client adjustment update. | |
| bool | ClientAuthorativePosition | If client update is within MAXPOSITIONERRORSQUARED of what the server expects then the client is authoritative on it's final position | |
| float | ClientErrorUpdateRateLimit | Minimum delay between the server sending error corrections to a client, in seconds. | |
| float | ClientNetCamUpdateDeltaTime | Minimum delay between calls to ServerUpdateCamera, in seconds. | |
| float | ClientNetCamUpdatePositionLimit | Camera position change limit, when exceeded allows an immediate ServerUpdateCamera call. | |
| float | ClientNetSendMoveDeltaTime | ClientNetSendMoveDeltaTime is the default minimum time delta of CharacterMovement client moves to the server. | |
| float | ClientNetSendMoveDeltaTimeStationary | ClientNetSendMoveDeltaTimeStationary is used when players are determined to not be moving or changing their view. | |
| float | ClientNetSendMoveDeltaTimeThrottled | ClientNetSendMoveDeltaTimeThrottled is used in place of ClientNetSendMoveDeltaTime when player count is high or net speed is low. | |
| int32 | ClientNetSendMoveThrottleAtNetSpeed | When player net speed (CurrentNetSpeed, based on ConfiguredInternetSpeed or ConfiguredLanSpeed) is less than or equal to this amount, ClientNetSendMoveDeltaTimeThrottled is used instead of ClientNetSendMoveDeltaTime. | |
| int32 | ClientNetSendMoveThrottleOverPlayerCount | When player count is greater than this amount, ClientNetSendMoveDeltaTimeThrottled is used instead of ClientNetSendMoveDeltaTime. | |
| float | JoinInProgressStandbyWaitTime | The amount of time to wait before checking a connection for standby issues | |
| float | LastNetSpeedUpdateTime | Last time AdjustedNetSpeed was updated for server (by client entering or leaving) | |
| float | MaxClientForcedUpdateDuration | MaxClientForcedUpdateDuration is the maximum time duration over which the server will force updates, after MAXCLIENTUPDATEINTERVAL is initially exceeded. | |
| float | MaxClientSmoothingDeltaTime | MaxClientSmoothingDeltaTime is the maximum delta time between server updates that clients are allowed to smooth between for position interpolation. | |
| float | MAXCLIENTUPDATEINTERVAL | MAXCLIENTUPDATEINTERVAL is the maximum time between movement updates from the client before the server forces an update. | |
| int32 | MaxDynamicBandwidth | Maximum bandwidth set per connection after splitting TotalNetBandwidth | |
| float | MaxMoveDeltaTime | MaxMoveDeltaTime is the default maximum time delta of CharacterMovement ServerMoves. | |
| float | MAXNEARZEROVELOCITYSQUARED | MAXNEARZEROVELOCITYSQUARED is the square of the max velocity that is considered zero (not corrected) in net play | |
| float | MAXPOSITIONERRORSQUARED | MAXPOSITIONERRORSQUARED is the square of the max position error that is accepted (not corrected) in net play | |
| int32 | MinDynamicBandwidth | Minimum bandwidth set per connection after splitting TotalNetBandwidth | |
| float | MovementTimeDiscrepancyDriftAllowance | Accepted drift in clocks between client and server as a percent per second allowed. | |
| float | MovementTimeDiscrepancyMaxTimeMargin | Maximum time client can be ahead before triggering movement time discrepancy detection/resolution (if enabled). | |
| float | MovementTimeDiscrepancyMinTimeMargin | Maximum time client can be behind. | |
| float | MovementTimeDiscrepancyResolutionRate | During time discrepancy resolution, we "pay back" the time discrepancy at this rate for future moves until total error is zero. | |
| float | MoveRepSize | Average size of replicated move packet (ServerMove() packet size) from player | |
| float | PercentForBadPing | The percentage of clients with bad ping before triggering the standby code | |
| float | PercentMissingForRxStandby | The percentage of clients missing RX data before triggering the standby code | |
| float | PercentMissingForTxStandby | The percentage of clients missing TX data before triggering the standby code | |
| float | ServerForcedUpdateHitchCooldown | Ignore forced client movement updates when server hitch was detected within this amount of time in the past. | |
| float | ServerForcedUpdateHitchThreshold | Ignore forced client movement updates when server hitches for longer than this duration. | |
| float | SeverePacketLossThreshold | If the packet loss goes over this threshold, we have severe packet loss. Value is between 0 and 1 | |
| int32 | SeverePingThreshold | Similar to BadPingThreshold, but used to track exceptionally bad pings. | |
| float | StandbyRxCheatTime | The amount of time without packets before triggering the cheat code | |
| float | StandbyTxCheatTime | The amount of time without packets before triggering the cheat code | |
| FTimerHandle | TimerHandle_UpdateNetSpeedsTimer | Handle for efficient management of UpdateNetSpeeds timer | |
| int32 | TotalNetBandwidth | Total available bandwidth (in bytes/sec) for listen server, split dynamically across net connections |
Constructors
| Type | Name | Description | |
|---|---|---|---|
AGameNetworkManager
(
const FObjectInitializer& ObjectInitializer |
Functions
| Type | Name | Description | |
|---|---|---|---|
| int32 | @RETURN new per/client bandwidth given number of players in the game | ||
| void | EnableStandbyCheatDetection
(
bool bIsEnabled |
Standby cheat detection. | |
| bool | ExceedsAllowablePositionError
(
FVector LocDiff |
||
| bool | Returns true if we should be in low bandwidth mode | ||
| bool | NetworkVelocityNearZero
(
FVector InVelocity |
||
| void | StandbyCheatDetected
(
EStandbyType StandbyType |
Notifies the game code that a standby cheat was detected | |
| void | UpdateNetSpeeds
(
bool bIsLanMatch |
Update network speeds for listen servers based on number of connected players. | |
| void | Timer which calls UpdateNetSpeeds() once a second. | ||
| bool | WithinUpdateDelayBounds
(
APlayerController* PC, |
Overridden from AActor
| Type | Name | Description | |
|---|---|---|---|
| void | Allow actors to initialize themselves on the C++ side after all of their components have been initialized, only called during gameplay |