Entity Component System - ECS - optimized for performance and cache locality
$ dotnet add package Friflo.Engine.ECSHigh Performance C# ECS - Entity Component System.
The ECS for finishers 🏁
More at GitHub README.md
An entity-component-system (ECS) is a software architecture pattern. See ECS ⋅ Wikipedia.
It is often used in the Gaming industry - e.g. Minecraft - and used for high performant data processing.
An ECS provide two strengths:
It enables writing highly decoupled code. Data is stored in Components which are assigned to objects - aka Entities - at runtime.
Code decoupling is accomplished by dividing implementation in pure data structures (Component types) - and code (Systems) to process them.
It enables high performant system execution by storing components in continuous memory to leverage CPU caches L1, L2 & L3.
It improves CPU branch prediction by minimizing conditional branches when processing components in tight loops.