✳ Elige cómo lo ves
← Volver a proyectos

Mi proyecto principal

01 / ARQUITECTURA · DIVULGACIÓN

Un motor. Cinco proyectos. Una guía.

Cómo construir un motor ECS en C++20

Mi proyecto principal reúne lo que más me interesa del desarrollo: entender la arquitectura de un motor y explicarla construyendo ejemplos jugables. Una guía en español sobre ECS, gestión de memoria y C++20.

MI APORTACIÓN

Autor y desarrollador

FECHA

Mayo de 2023

DURACIÓN

1 año

HERRAMIENTAS

C++20 · Raylib · ECS · LaTeX

01 / CONTEXTO

El reto.

Convertir la arquitectura de un motor en un recorrido que otros desarrolladores pudieran seguir desde cero, sin perder de vista cómo se organizan los datos y cómo fluye la ejecución.

02 / PROCESO

Mi aportación.

Descompuse el motor en entidades, componentes y sistemas. Organicé los ejemplos con dificultad progresiva y escribí las explicaciones junto al código de cada proyecto. La guía avanza hacia separación de datos, slotmaps y almacenamiento de componentes.

  • Diseño del recorrido de aprendizaje y redacción de la guía.
  • Implementación de los proyectos y evolución de su motor ECS.
  • Ejemplos de memoria, estructuras de datos y organización de componentes.
03 / RESULTADO

Lo que construimos.

Una guía de 174 páginas y cinco proyectos de aprendizaje. El recorrido termina en The Final Room: un juego por turnos que reúne las piezas desarrolladas durante los capítulos anteriores.

Explicar una decisión de arquitectura obliga a entender tanto el problema que resuelve como el coste que introduce.
04 / DECISIONES

Decisiones de desarrollo.

Una arquitectura que aparece al necesitarla

Los cinco proyectos permiten introducir conceptos con un problema jugable como referencia. El recorrido parte de ejemplos pequeños y llega a The Final Room. Esta progresión permite relacionar cada nueva pieza del motor con el comportamiento que necesita el juego, en lugar de presentar toda la arquitectura de golpe.

Separar identidad, datos y comportamiento

Las entidades identifican objetos del juego, los componentes almacenan sus datos y los sistemas ejecutan operaciones sobre ellos. En el proyecto final pueden seguirse por separado la entrada, las colisiones, la posición, la IA y el renderizado. El comportamiento surge de cómo colaboran estas piezas.

Hacer visible la gestión de memoria

El almacenamiento de componentes y los slotmaps forman parte del material del proyecto. Las claves combinan índice y generación para comprobar su validez al reutilizar posiciones. El lector puede estudiar tanto la organización de los datos como las operaciones de inserción, consulta y borrado que la sostienen.

05 / RECORRIDO

El proyecto en uso.

  1. Empezar por el campo de estrellas y los primeros ejemplos para entender el bucle de ejecución y la representación del estado.
  2. Avanzar hacia la separación en entidades, componentes y sistemas, comparando las explicaciones con los archivos de cada prototipo.
  3. Abrir The Final Room y seguir una acción desde la entrada del jugador hasta los sistemas que actualizan y dibujan el juego.
06 / PARA EXPLORAR

Qué explorar.

Una forma de acercarte al proyecto a través de sus pantallas, su material y, cuando está disponible, su código.

  • La correspondencia entre las explicaciones de la guía y los cinco directorios de prototipos.
  • Las claves y la validación de generaciones en la implementación del slotmap.
  • El orden de actualización de los sistemas en el juego final.
EL PROYECTO CONECTA CONCada decisión consume un turno.

LAS PERSONAS DETRÁS

Créditos.

Laureano Cantó

Autor y desarrollo

Francisco José Gallego Durán

Revisión de la guía

SIGUIENTE PROYECTO / 02

Estrategia por turnos, construida en C++