EnTT
Más información
- Creador
- Michele Caini (skypjack)
- Año
- 2017
- Tipo
- Biblioteca de C++
- Licencia
- MIT
- Código fuente
- github.com/skypjack/entt
Una biblioteca header-only en C++ moderno que implementa un entity component system sobre conjuntos dispersos en lugar de arquetipos.
Michele Caini publicó EnTT en 2017. Cada tipo de componente tiene su propio conjunto disperso: un array denso con los componentes y un índice disperso por id de entidad. Añadir o quitar un componente cuesta casi nada, a diferencia de los diseños basados en arquetipos, que mueven la entidad entera de una tabla a otra. La factura llega al iterar sobre varios componentes a la vez, algo que EnTT suaviza con «grupos» que mantienen los conjuntos ordenados de forma coincidente.
Es una pieza, no un motor, y se le conoce sobre todo como el núcleo ECS de Minecraft Bedrock Edition. También se ha convertido en referencia obligada en la eterna discusión sobre qué modelo de almacenamiento es más rápido; la respuesta, como siempre, es «depende».