Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund
Game Development Intermediate

C++ for Game Engines: Entity-Component Systems and Frame Budgets

Write engine-grade C++ that respects cache lines, allocators and a 16-millisecond frame.

Rated 4.0 out of 5 from 1 review 12 students

AP Created by Ana Petrova

  • Last updated August 2026
  • English
  • 9h 48m of material
  • 74 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Design an entity-component-system with dense storage, handles and generation counters
  • Lay out data for cache locality and prove the gain with real profiler measurements
  • Write frame, pool and stack allocators that avoid the heap during gameplay
  • Implement a fixed-timestep game loop with interpolation and a stable frame budget
  • Build a job system on a work-stealing queue and parallelise systems safely
  • Avoid virtual dispatch and exceptions in hot paths without giving up clean design
  • Profile a frame and attribute every millisecond to a specific subsystem
  • Recognise the same patterns inside Unreal Engine source and gameplay framework code

Course curriculum

7 modules · 74 lessons · 9h 48m of material

9 lessons running 1h 08m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

12 lessons running 1h 34m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

15 lessons running 2h 04m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

11 lessons running 1h 26m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

10 lessons running 1h 16m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

10 lessons running 1h 22m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

7 lessons running 58m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

7 modules · 74 lessons

9h 48m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • Solid intermediate C++: classes, templates, references and a working build system
  • Familiarity with basic linear algebra for transforms, at the level of vectors and matrices
  • A machine that can run a profiler such as Tracy, Superluminal or Visual Studio diagnostics

About this course

Game code is C++ with a stopwatch attached. A frame at sixty hertz gives you roughly sixteen milliseconds for simulation, animation, physics and rendering combined, and the language features that feel elegant in application code can quietly eat that budget. This course teaches the dialect of C++ that engine programmers actually write.

You build a small entity-component-system from scratch: dense component arrays, archetype storage, entity handles with generation counters, and systems that iterate contiguously instead of chasing pointers. Along the way you measure everything. Cache misses, branch misprediction and allocation spikes stop being folklore once you have profiler output showing a structure-of-arrays layout beating an array-of-structures version by a factor you produced yourself.

The later modules cover the supporting machinery: frame and pool allocators that never call the general-purpose heap during gameplay, a fixed-timestep loop with interpolation, a job system built on a work-stealing queue, and hot-reloadable gameplay code. Examples are engine-agnostic C++20 and include notes on how the same patterns appear inside Unreal Engine.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

No. The course builds an engine-agnostic ECS in plain C++20 with CMake. Unreal is referenced only to show where the same ideas appear in a shipping engine.

Directly. Cache behaviour, allocator design and fixed-timestep loops are standard interview territory for engine and gameplay roles, and you will have measurements of your own to talk about.

No. The course stays on the CPU side: simulation, memory and threading. Rendering appears only as a consumer of the frame budget.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

Reviews are written by people who bought this course. We publish the critical ones too.

4.0

Rated 4.0 out of 5

Course rating · 1 review

Rating distribution

  • 5 stars 0%
  • 4 stars 100%
  • 3 stars 0%
  • 2 stars 0%
  • 1 star 0%
  • RH

    Rasmus Holm

    Engine programmer

    Nov 2025
    Rated 4.0 out of 5

    Frame budget thinking, well taught

    Treating sixteen milliseconds as a budget you spend rather than a target you hope for genuinely changed how I approach a profile. Structure of arrays and the custom allocator chapters are strong. The job system section then moves quickly and takes it for granted that you are comfortable with atomics, which the stated requirements do not quite prepare you for.

Your instructor

AP

Ana Petrova

Systems engineer and C++ instructor

  • 206 students taught
  • 9 courses published
  • 4.4 instructor rating
  • C++
  • Systems programming
  • Memory management
  • Concurrency

Ana spent nine years writing real-time C++ for trading infrastructure before moving into teaching full time. She specialises in the parts of the language people quietly avoid: templates, move semantics, custom allocators and the memory model. Her courses are built around profiling sessions on code that is deliberately slow, so every fix is something you measure rather than memorise. She still contributes to two open-source benchmarking libraries.

$69 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.