A long-term engineering project · a new standard, built from scratch

UE C++ Academy — not a reference, but an engineering school for Unreal Engine

Every topic explains not "what to use," but "why it exists," "what problem it solves," "how it works internally," and "when not to do it." The goal is that after reading a topic, no logical question remains unanswered, and that you learn to arrive at Epic's architectural decisions yourself, rather than memorizing them as a list of facts.

How each topic is structured

A flexible standard: 11 mandatory sections for any topic + sections that appear automatically if the topic naturally generates them — without artificial items like "Impact on Multiplayer" in an article about const.
What is it?
A short orienting statement before the deep dive.
Why does it exist?
Problem → cause, not a fact without context.
What problem does it solve?
A specific, reproducible scenario where the naive approach breaks.
How does it work?
Constraints → architectural solution → implementation, with examples from Engine Source.
When to use / not use
Boundaries of applicability — without them, a topic breeds cargo cult.
Examples
Fully working code with a line-by-line breakdown — pseudo-code is forbidden.
Common mistakes
Separately for beginners and mid-level developers, explaining the mechanism of failure.
Practice
Assignments that force you to reproduce the reasoning, not just copy the example.
FAQ
Questions that actually arise for an attentive reader.
Summary
Statements the reader should be able to articulate in their own words.
+ as needed
GC, Reflection, Blueprint, Multiplayer, serialization, performance — if the topic naturally generates them.

Before you start

A compass over the entire course — not a topic, but a way of thinking that repeats in every subsequent topic.
💡
Twelve cross-cutting "Whys" (UObject, pointers, GC, Reflection, Component, Composition, Modules, Plugins, Subsystem, Gameplay Tags, Data Assets, Primary Assets) in one place — read this page first, and from then on, each new course topic will be recognized as a variation of a familiar line of reasoning, rather than a new set of facts.

Reference article

The gold standard of quality and depth for the entire project — it's worth starting with, even if you're already an experienced developer.
Engine → Framework → why UObject → why Reflection → why Garbage Collector → why macros appeared → how it all connects into a single chain of causes. After this article, the rest of the course topics are not read as separate facts, but as applications of the same way of reasoning.

Roadmap — 9 Levels

Nine sequential levels instead of sixteen separate clusters — each next level is explained through the previous one, not on its own. The only exception is Level 5: its six applied systems are parallel, not sequential.
0
Level 0 — How Unreal Thinks
Why the rest of the course exists: when Epic's documentation is still enough, and when it's time to open the engine source, and how to physically navigate .h/.cpp files even before you know what a UObject is.
1
Level 1 — Object System
Builds on Level 0 — after it, any UCLASS()/UPROPERTY() is explained as a specific consequence of Reflection, Garbage Collector, Package, and CDO, not as magical syntax.
2
Level 2 — Runtime Objects
Builds on the Object System — first the Actor and its components, and only when the question "how to store the list of components" naturally arises, the tools: TArray/TMap and the two non-overlapping worlds of pointers.
3
Level 3 — Gameplay Framework
Builds on Level 2 — the complete set of framework roles (Pawn/Controller/Character/GameMode/GameState/GameInstance/Subsystem) and Delegates as a tool, before AI/UI/GAS start to silently rely on them.
4
Level 4 — Data
Builds on UObject and soft references — how to describe growing content as data, not code, before GAS and AI start being built on it.

Level 5 — Systems

Six parallel applied systems, not a sequence — the order between 5.A–5.F is not strict, each builds only on Levels 0–4 (and Network Prediction in GAS also on Level 6, Multiplayer).
5A
5.A — Input
How gameplay intent is separated from the physical key: Input Actions and Mapping Contexts instead of hardcoded Action/Axis Mappings.
5B
5.B — UI
How to build an interface with UMG, how to manage the screen stack and focus with CommonUI, and how to break the direct connection between the widget and game objects with MVVM.
5C
5.C — Gameplay Ability System
An ability framework on top of UFUNCTION: networking, cancellation, resource costs, and effect compatibility in one cohesive solution — up to Network Prediction at the intersection with Multiplayer.
5D
5.D — AI
How the decision of "what the NPC should do" is expressed as a tree of reusable nodes, how tasks and the tree exchange data through a shared storage, and how to declaratively find the best point in the world.
5E
5.E — World Streaming
How a game world that doesn't physically fit in memory as a whole is loaded in parts: manually, automatically by grid, and with logical layers on top.
5F
5.F — Animation
How the skeletal pose logic is separated into its own object with its own graph, how one-shot actions are played on top of continuous blending, and how the pose adapts to geometry at runtime.
6
Level 6 — Multiplayer
Builds on UPROPERTY and Owner/GetOwner() — the server and client see the same actor differently, and that's enough to go back and truly close Network Prediction from Level 5.
8
Level 8 — Production
A completely new level, concluding the course — how not only to write code, but also to diagnose and fix existing code, maintain the frame budget, save progress, and structure a project that will outlive more than one developer.

Afterword — end-to-end articles

Not new material, but an exam on whether you can see the system as a whole: five articles connect everything studied separately into end-to-end stories — from pressing a key to a frame on screen, from process launch to the complete game lifecycle.
Afterword — Engineering Flows
Builds on the entire course as a whole — each article traces one end-to-end path through events studied separately in Levels 0–8, assembling them into a single chronology verifiable against the source code.

Apply it all together

Going through 9 levels in isolation is enough to understand each idea — not enough to feel how dozens of such ideas coexist in one living class. The second, parallel track of the course — the same character, growing alongside the progression through the levels.
🎮
One continuously growing project instead of sixteen parallel milestones — almost every level adds a real, working piece of the same survival game: from a bare Actor and components through Enhanced Input, DataAsset items, UMG/MVVM, Multiplayer, GAS abilities and AI enemy to saving and profiling, with the mandatory condition that decisions from previous steps are not rewritten silently, only through explicit refactoring — just as in a real project.

Tags

#engine #framework #uobject #reflection #garbage-collector #upropety #owner #architecture #actor #component #ufunction #uinterface #blueprint #smart-pointers #soft-reference #multiplayer #rpc #pawn #controller #gamemode #delegates #tarray #tmap #containers #input #gas #attributeset #gameplayeffect #prediction #umg #commonui #mvvm #gameplaytags #dataasset #datatable #assetmanager #behaviortree #blackboard #eqs #levelstreaming #worldpartition #datalayer #animinstance #animmontage #ik #documentation #source-reading #dependencies #cdo #outer #eobjectflags #fname #package #asset-registry #transform #tick #spawnactor #uworld #character #gameinstance #subsystem #relevancy #dormancy #unreal-header-tool #hot-reload #unrealbuildtool #modules #plugins #farchive #cooker #async-loading #threading #game-thread #fmalloc #uelog #visual-logger #gameplay-debugger #draw-debug #unreal-insights #stat-commands #tick-optimization #taskgraph #profiling #savegame #god-class #ustruct #tsubclassof #cast #newobject #memory-layout #world-context #tactoriterator #collision #linetrace #chaos #playercontroller #localplayer #gameplaystatics #primarydataasset #config #developersettings #input-subsystem #slate #widget-lifecycle #commoninput #executioncalculation #modifiermagnitudecalculation #gameplaycue #aiperceptioncomponent #navmesh #smartobjects #pcg #foliage #hlod #nanite #lumen #state-machine #blendspace #linked-anim-layers #motion-warping #root-motion #animinstanceproxy #actor-channel #netdriver #replayout #replicationgraph #fastarrayserializer #client-side-prediction #netmode #seamlesstravel #action-graph #unrealheadertool #target-cs #compilation-pipeline #generated-h #live-coding #packaging #pluginmanager #fmemory #cache-line #tarray-memory #tsparsearray #trace #trace-channel #csv-profiler #ai-debugging #llm #gpu-profiling #frame-analysis #composition #singleton-alternative #observer-pattern #factory-pattern #command-pattern #dependency-injection #engine-lifecycle #streamable-manager #activateability #frame-pipeline #repnotify

How the old project was used

The previous project (the folder one level up) has not been deleted and remains as reference material — a source of ideas, ready-made explanations, and code examples. No article here is a copy: each topic is analyzed anew, verified, supplemented, and brought to the common standard described above.

```