Entity-Component-System
Entity-Component-System (ECS)
Transitioning from monolithic data structures to the ECS architecture, splitting our data into dedicated component pools.
Entity-Component-System
Relational Data and Sparse Sets
Connecting components to their entities using the sparse set pattern, achieving fast lookups while maintaining cache-friendly contiguous data.
Entity-Component-System
The Join Algorithm
Efficiently pulling data from multiple component pools simultaneously using the smallest set driver pattern, and optimizing it using bitmasks to minimize cache misses.
Entity-Component-System
Templatizing Components
Improving our API using templates and a centralized registry using std::tuple.
Entity-Component-System
Creating Views
Updating our ECS to support composable, range-based views that handle the smallest-set algorithm automatically using C++20 ranges.
Intro to C++ Programming
Objects, Variables and Types
An introduction to the building blocks of our software - objects, and the variables that can be associated with them.
Intro to C++ Programming
Creating Variables
Creating variables to store and update the data that describes our objects. We also introduce comments, allowing us to describe our code in plain language.
Working with Bits
Working with Bits
Learn to use bitwise operators to pack multiple states into a single byte, reducing memory bandwidth use.
Working with Bits
Fast Filtering and Branchless Logic
Replace slow logical operators with fast bitwise arithmetic. Learn how to filter data without branching, avoiding pipeline flushes and speeding up queries.
Working with Bits
Quantization and Delta Encoding
Trade CPU cycles for memory bandwidth by compressing data using bit packing, quantization, and delta encoding.