Framework overview
Every gameplay tutorial throws GameMode, PlayerController, Pawn, and PlayerState at you in the
GameMode & GameState
AGameModeBase and AGameStateBase look like they should be one class — they're set up together, they
PlayerController & PlayerState
APlayerController and APlayerState both represent "the player" in some sense, and both persist
Pawn & Character
ACharacter is a subclass of APawn, and in practice most projects reach for ACharacter by default
Actor lifecycle
Every AActor — GameMode, Pawn, a static prop, your custom gameplay actor — goes through the same
Actor components
Unreal favors composition over inheritance for actor behavior: instead of a deep class hierarchy for
World & levels
GetWorld() is one of the first functions every Unreal C++ developer learns, and one of the last ones
Game instance
GameMode gets destroyed and recreated on every level load; Pawns die and respawn; even