Engines‎ > ‎Unreal‎ > ‎

Gameplay Framework


A level is a user defined area of gameplay. Each level is saved as a .umap file so they are also sometimes referred to as Maps.

The World in Unreal is the part that handles the streaming of Levels when creating large areas of gameplay.

An Actor (AActor) is any object that can be placed in a level. There are several different types of Actors depending on how it will be used.

void BeginPlay();
void EndPlay(...);
void Tick(...);

Subclass of Actor that serve as an in-game avatar or persona. Pawns are controlled by the player or AI using a PlayerController or an AIController.
  • A Character is a special type of pawn that can walk around like a humanoid like creature.
A controller is a non-physical actor that can possess a pawn and control it's actions.
  • PlayerController is used by a human player.
  • AIController is used by AI's to control pawns.
Geometry Actor's
There are three actors used to build the geometry of the game.
  • The StaticMeshActor is used for meshes where the geometry does not change.
  • The SkeletalMeshActor is used for things that can be animated.
  • The last one is the Brush that can be used to display simple 3D geometry and it is useful to prototype environments.
Trigger are actors that fires a event when some other object in the level interact with them. The shapes to select from are Box or Sphere triggers.

Actor Components
A component can be added to an actor to give it new functionality. Use the Details window or the My Blueprint window to add or delete components. When the components exists it is possible to drag it into a eventgraph as a variable or right click it to add events related to it.

void InitializeComponent();
void UninitializeComponent();
void TickComponent(...);

AActor* ParentActor = MyComponent->GetOwner();
UMyComponent* MyComp = MyActor->FindComponentByClass<UMyComponent>();

Game Rules
The 'game' is split over the following classes.

Game Instance
The GameInstance is created when the game start and persists switching of levels. Use it to store data that needs to survive switches of levels.

This only exist on the server and contains the rules of the game. Data about the game the clients also need to know about should be stored in gamestate.

Data about the game that exist on the server and all clients.


Data about a player that exist on all machines.