Desarrollar para Gameboy: temas y referencias
Documentos y artículos clasificados de desarrollo y programación para Gameboy
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.