Mazmorras e interfaz
Resumen general
- En la parte anterior se exploraron el patrón de arquitectura entidad-componente-sistema (ECS), comúnmente usado en el desarrollo de juegos, y el paradigma de programación de metalenguajes.
- Esta vez se usará esta tecnología para crear un pequeño juego del género dungeon crawler y, a través de ello, revisar el diseño de sistemas de una aplicación de juego real.
Preparación
- Se configura el entorno de Common Lisp y se actualizan los paquetes necesarios.
- Se inicia el proyecto usando una plantilla de
cookiecutter y se establece el tamaño de la ventana del juego en 1280x800.
Mazmorra
- Se necesita un mapa de mazmorra para que el jugador pueda explorarla.
- Se crea el mapa de la mazmorra con Tiled, un editor de mapas de código abierto, y se usa la biblioteca
cl-tiled para cargarlo como un objeto de Lisp.
- Después de preparar el archivo del mapa, se realizan algunos pasos previos para poder cargarlo y usarlo dentro del juego.
Aplicación del patrón ECS
- Los datos de los tiles del mapa se mueven al almacenamiento ECS para mejorar el rendimiento.
- Se agrega el framework
cl-fast-ecs al proyecto y se inicializa el sistema ECS.
- Los tiles del mapa se almacenan como entidades individuales y se definen sistemas para procesarlos.
Animación
- Tiled admite tiles animados, lo que permite darle más vida al juego.
- Para implementar la animación, se amplía y refactoriza la estructura del código.
- Se definen los componentes
animation-frame y animation-state para gestionar el estado de la animación.
- Se define el sistema
update-animations para cambiar los cuadros de animación en el momento adecuado.
Resumen de GN⁺
- Este artículo explica cómo usar eficientemente el patrón ECS en el desarrollo de juegos.
- Presenta una forma de crear y gestionar mapas fácilmente con herramientas como Tiled.
- Explica cómo darle más vida al juego mediante animaciones.
- Con el patrón ECS es posible optimizar el rendimiento y mantener una estructura de código concisa.
- Otros proyectos con funciones similares incluyen el sistema ECS de Unity o el sistema Blueprint de Unreal Engine.
Aún no hay comentarios.