EnTT
Maggiori info
- Autore
- Michele Caini (skypjack)
- Anno
- 2017
- Tipo
- Libreria C++
- Licenza
- MIT
- Codice sorgente
- github.com/skypjack/entt
Una moderna libreria C++ header-only che implementa un entity component system su sparse set anziché su archetipi.
Michele Caini rilasciò EnTT nel 2017. Ogni tipo di componente ha il proprio sparse set: un array denso di componenti più un indice sparso basato sull'identificatore dell'entità. Aggiungere o rimuovere un componente costa quindi quasi nulla, a differenza dei progetti basati su archetipi, che spostano l'intera entità da una tabella all'altra. Il conto arriva quando si itera su più componenti insieme, e EnTT lo attenua con i «gruppi», che mantengono gli insiemi ordinati in modo corrispondente.
È un mattone, non un motore, ed è noto soprattutto come nucleo ECS di Minecraft Bedrock Edition. È diventato anche il punto di riferimento nella discussione ricorrente su quale modello di memorizzazione sia davvero più veloce — con la risposta di sempre: «dipende».