UDN
Search public documentation:

ReplicationGlossary
日本語訳
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Networking & Replication > Replication Glossary

Replication Glossary


Actor roles


Roles define how an actor should be handled on the server and or the client.
  • ROLE_None - This actor has no role at all.
  • ROLE_SimulatedProxy - A simulated actor is a temporary, approximate proxy which simulate basic physics on the client. Simulated actors can only execute simulated script functions and enter simulated states.
  • ROLE_AutonomousProxy - An autonomous actor has logic built in for client side prediction to handle movement. Autonomous actors can execute any script functions and enter any state.
  • ROLE_Authority - The run time which owns this actor has absolute, authoritative control over this actor.

WorldInfo net modes


NetModes define the world info network state.
  • NM_Standalone - The world info is running as a single player game.
  • NM_DedicatedServer - The world info is running as a dedicated server.
  • NM_ListenServer - The world info is running as a server with one or more local clients.
  • NM_Client - The world info is running as a client.

Variable property flags


  • RepNotify - When this variable is updated via replication, ReplicatedEvent is called with the 'VarName' function parameter set to the name of the variable.
    • Example - var() RepNotify int ClassIndex;

Event/functions property flags


  • Reliable - These events or functions will always be sent and received in order to the client or server.
    • Example - reliable server function MyReliableServerFunction();
  • Unreliable - These events or functions may be sent and received to the client or server. These are dropped if bandwidth is limited.
    • Example - unreliable server function MyUnreliableFunction();
  • Server - When these events or functions are called on the client, they will be executed on the server. Server side actors shouldn't call these events or functions directly, but rather an event or function which does the actual logic. Thus server should act as a bridge of communication between the client and the server.
    • Example - server function MyServerFunction();
  • Client - When these events or functions are called on the server, they will be executed on the client. Unlike server events or functions, these events or functions may contain the actual logic.
    • Example - client function MyClientFunction();
  • Simulated - Actors on remote clients that are ROLE_SimulatedProxy or ROLE_AutonomousProxy may execute these events or functions.
    • Example - simulated function MySimulatedFunction();

State property flags


  • Simulated - Actors on remote clients that are ROLE_SimulatedProxy or ROLE_AutonomousProxy may enter these states.
    • Example - simulated state MySimulatedState { }

Replication variables


These are variables in Actor which allow to control how replication is handled on clients and or servers.

Actor

  • NetPriority - Unreal Engine 3 uses a load balancing technique which gives all actor instances a slice of the bandwidth based on their priority. Some actors may require more replication updates than others, and thus set this value higher. Example:
    • Actor = 1.0
    • Pawns = 2.0
    • PlayerController = 3.0
    • Projectiles = 2.5
    • Inventory = 1.4
    • Vehicle = 3.0
  • Role - The role for the actor on the run time.
  • RemoteRole - The role for the actor on the remote run time.
  • bNetDirty - Is true if any replicated properties have been changed.
  • bNetInitial - Is true until initial replication of all replicated properties is complete.
  • bNetOwner - Is true if the top owner is the PlayerController owned by the current client.
  • bAlwaysRelevant - Always relevant to the network.
  • bGameRelevant - Always relevant to the game.
  • bReplicateInstigator - Replicate the instigator variable to the client.
  • bReplicateMovement - Replicate movement and or location related properties.
  • bSkipActorPropertyReplication - Don't replicate for actor class variables for this actor.
  • bUpdateSimulatedPosition - Update velocity and or location after initialization for simulated proxies.
  • bTearOff - This actor is no longer replicated to new clients, and its role is set to ROLE_Authority on clients to which it was being replicated.
  • bOnlyDirtyReplication - Only replicate this actor if bNetDirty is true. This is only used if bAlwaysRelevant is true.
  • NetUpdateFrequency - How often per second this actor will be considered for replication, used to determine NetUpdateTime.
  • bForceNetUpdate - Set this to true, to force this actor to be immediately considered for replication.

WorldInfo

  • MinNetVersion - The minimum engine version that is required for network compatibility. This can be used to allow clients to connect to more up to date server. This can be useful when updates are only server side and don't affect the client.
  • NetMode - The network mode for this world info. Use this to determine what type of run time that is running.
  • ReplicationViewers - A dynamic array of all the viewers in the world that need to be checked against for relevancy.

GameInfo

  • bHasNetworkError - Tracks whether the server can travel due to a critical network error.
  • AdjustedNetSpeed - Current adjusted net speed. Use to dynamically manage the net speed for listen servers.
  • LastNetSpeedUpdateTime - Last time net speed was updated for server (by client entering or leaving).
  • TotalNetBandwidth - Total available bandwidth for listen server, split dynamically across net connections. (Configuration variable)
  • MinDynamicBandwidth - Minimum bandwidth dynamically set per connection. (Configuration variable)
  • MaxDynamicBandwidth - Maximum bandwidth dynamically set per connection. (Configuration variable)

Constant replication variables


These are constant variables in Actor which can be used for detecting the replication state. These constant variables can be set in the actor's default properties to control how replication is handled on clients and or servers.
  • bNetTemporary - Tear off simulation in network play.
  • bOnlyRelevantToOwner - This actor is only relevant to its owner.
  • NetTag - Internal net tag for this actor.
  • NetUpdateTime - The next time the actor will be considered for replication.
    • SetNetUpdateTime(float NewUpdateTime) - This function can be used to set the next time the actor will be considered for replication.
  • LastNetUpdateTime - The last time the actor was updated by replication. This is not related to WorldInfo.TimeSeconds.
  • bPendingNetUpdate - This actor is waiting for a full net update due to clients that weren't able to replicate the actor at the time of LastNetUpdateTime.

Replication events/functions


  • simulated event ReplicatedEvent(name VarName) - This event is called when a variable with the RepNotify property flag "RepNotify" is replicated.
  • native final function SetForcedInitialReplicatedProperty(Property PropToReplicate, bool bAdd) - Adds or removes a property from the list of properties that will always be replicated while this Actor has bNetInitial set to true, even if the code thinks the client has the same value the server already does. This is a workaround for the problem where a level designer places an actor in the level, changes a replicated variable away from the defaults, then at run time the variable is changed back to the default but it doesn't replicate because initial replication is based on class defaults. Used only for actors which have bStatic or bNoDelete set to true. Only properties already in the owning class's replication block may be specified.
  • event TornOff() - This event is called when the actor has been torn off from the network; when bTornOff is true.
  • event ForceNetRelevant() - This event is called when native code wants to force this actor to be relevant. You may also call this event in Unrealscript to do the same.
  • final native function SetNetUpdateTime(float NewUpdateTime) - This function can be used to set the next time the actor will be considered for replication.