Entity Component System

Summary

An archetype based ECS that was used in the last three group projects during my time at the Game Assembly. The entities are just a 64-bit ID and there is very little difference between them and components aside from some component ID:s being linked to data. ID:s are recycled on removal and are made up of multiple parts bit-shifted together. Tags, and even other entities, can be added as components and queried for akin to how you would query a database.
Heavily inspired by blog posts made by Sander Mertens, creator of Flecs.
The reasons why I chose to create an ECS:

Component Storage

The storage is composed of a vector of columns, where each column is a type eased vector of a unique component type. The vector of columns are stored in an archetype.