unreal-engine
Unreal Engine — AAA Game Engine
Overview
Unreal Engine (UE) is Epic Games' engine. The current line is UE 5.8 (June 2026, with hotfixes). Gameplay is written in C++ (modules built by UnrealBuildTool, UBT) and Blueprints (node graphs saved as assets); the two mix freely through UCLASS, UPROPERTY and UFUNCTION reflection macros. Main rendering and world features: Nanite (virtualized geometry), Lumen (dynamic global illumination), Virtual Shadow Maps, MegaLights (many dynamic lights, production-ready in 5.8), World Partition (streamed open worlds), and Iris (new replication system, production-ready in 5.8). Download the engine through the Epic Games Launcher, or build it from source after linking your Epic account to GitHub for access to the EpicGames/UnrealEngine repository.
Instructions
Project layout and C++ modules
- A project is a
.uprojectfile plusSource/<Module>/with<Module>.Build.cs,<Module>Editor.Target.csand<Module>.Target.cs. Add engine modules toPublicDependencyModuleNamesinBuild.cs:"Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput". - Create classes in the editor (Tools > New C++ Class) or add the
.h/.cpppair by hand and regenerate project files (right-click the.uproject> Generate Visual Studio project files, orGenerateProjectFiles.shfor source builds). - Every reflected header ends its include list with
#include "<ClassName>.generated.h". A newUPROPERTYorUFUNCTIONneeds the editor closed or Live Coding off for a full rebuild (Live Coding patches function bodies only). - Use
UPROPERTY()on everyUObject*member you hold; otherwise garbage collection can free it. UseTObjectPtr<T>for member pointers in UE5.
A Blueprint-friendly character with Enhanced Input
Enhanced Input has been the default input system since UE 5.1: axis mappings and BindAxis("MoveForward") are the legacy path. Create UInputAction assets (IA_Move as Axis2D, IA_Jump as Boolean) and a UInputMappingContext, then bind them: