4. Arquitectura ECS

La arquitectura Entidad-Componente-Sistema (ECS) separa los datos, la gestión de su almacenamiento y acceso, y su actualización. Esta separación sigue el principio del diseño orientado a datos (Data Oriented Design, DoD) y tiene las siguientes ventajas:

  • Los datos pueden almacenarse según el patrón de acceso, maximizando la productividad del sistema (throughput), marcada por la memoria caché.
  • La gestión de los datos está separada de su acceso y procesado.
  • Favorece la componibilidad de funcionalidades, lo que permite añadirlas y quitarlas en tiempo de ejecución.
  • Facilita la implementación de simulaciones.
  • Simplifica el diseño de ejecución en paralelo de sistemas de procesamiento.

Por este motivo, esta arquitectura lleva más de una década siendo adoptada por la industria del videojuego y el software de simulación.

ECS Simplificado (ES)

Al no haber caché, en Gameboy es más adecuado implementar una versión simplificada de ECS, donde eliminamos la descomposición por componentes. A esta versión la llamamos ES (Entidad-Sistema).

La teoría e implementación están explicadas en vídeos, en estos subcapítulos:

Tenéis también la lista completa en Youtube: GameEngine ECS en C.

Diseño orientado a Datos (DoD)

Para aprender más sobre el Diseño Orientado a Datos, podéis consultar el libro gratuito Data Oriented Design de Richard Fabian.

Es un libro teórico, muy bueno y muy completo. No es necesario para la asignatura pero, si os interesa, es la mejor referencia para profundizar.