https://www.richardlord.net/blog/ecs/why-use-an-entity-framework.html

https://www.david-colson.com/2020/02/09/making-a-simple-ecs.html

  • Very thorough, shows both a sparse and a compact version
  • Explains Unity’s DOTS, a vatiant of ECS using archetypes

https://hacksoflife.blogspot.com/2021/02/making-soa-tollerable.html?m=1

  • ECS
  • struct of arrays
  • SIMD

https://kyren.github.io/2018/09/14/rustconf-talk.html

  • Long intro to ECS (Rust colored)
  • Generational entity indices

ECS design

  • components known at compile time

    • Placement { Position, Rotation }
    • Movement {Velocity, Angular Velocity }
    • Mesh
    • Texture(s)
    • ClosestCamera
  • Array of entities

    • Each entity has a bitmask describing which components are associated with it
  • Systems

    • Each system processes all entities with a specific set of Components Examples:
      • Physics requires Placement and Movement
      • Render requires Placement, Mesh and Texture
      • LOD requires ClosestCamera and Mesh