Getting started with the Unreal Engine API

Orientation

Games, programs and the Unreal Editor are all targets built by UnrealBuildTool. Each target is compiled from C++ modules, each implementing a particular area of functionality. Your game is a target, and your game code is implemented in one or more modules.

Code in each module can use other modules by referencing them in their build rules. Build rules for each module are given by C# scripts with the .build.cs extension. Target rules are given by C# scripts with the .target.cs extension.

Modules supplied with the Unreal Engine are divided into three categories; the Runtime, functionality for the Editor, and Developer utilities.
Most gameplay programming just uses runtime modules, and the three most commonly encountered are Core
, CoreUObject
and Engine
.

Core

The Core module provides a common framework for Unreal modules to communicate; a standard set of types, a math library
, a container
library, and a lot of the hardware abstraction that allows Unreal to run on so many platforms.
Some common topics are listed below; full documentation is available here
.

CoreUObject

The CoreUObject module defines UObject, the base class for all managed objects in Unreal. Managed objects are key to integrating with the editor, for serialization, network replication, and runtime type information. UObject derived classes are garbage collected.
Some common topics are listed below; full documentation is available here
.

Engine

The Engine module contains functionality you’d associate with a game. The game world, actors, characters, physics and special effects are all defined here.
Some common topics are listed below; full documentation is available here
.