Slotmap: The budget allocator you probably should use

Slotmaps are known by quite a few names, including stable vector (not to be confused with boost::stable_vector), slab, idvec, generational indices… far too many to list here. It’s usefulness cannot be understated, and many other data structures can be implemented extremely efficiently when relying on this pattern. The most popular implementation I have found of this structure is the rust crate slotmap, with most of the implementations that I can find being rust based.
Read more →

Nitelite Archetypes

ECS is defined in two ways: ECS as a programming pattern, with it’s core philosophy of “Composition over inheritance. ECS as a data access pattern, where objects are stored in a more efficient layout. Both definitions are incredibly important to why ECS is trendy. The programming pattern promotes decoupling and modularity, while the data pattern provides great performance over object-driven approaches. This post will specifically highlight the data access pattern part of ECS.
Read more →

Nitelite ECS

I recently had the pleasure of joining a new team as a part of the DigiPen project courses, where we all worked together to develop a game engine. Me and another (Travis) had taken on the responsibility of the “Core Engine” development, so I have spent much of my time over the past semester working on implementing the best tools I can. Our primary goal for this project was to make a tool that others could use to make different types of games, somewhat of a small-scale Unity.
Read more →