# Devlog - Sesión 1: Inicialización y Motor 3D ## Fecha: 30 de Diciembre, 2025 ### Resumen General En esta sesión se ha establecido la base completa del motor de juego para **Warhammer Quest (Versión Web 3D)**. Se ha pasado de un concepto inicial a una aplicación dockerizada con generación procedimental de mazmorras y visualización isométrica en 3D. ### Hitos Alcanzados #### 1. Infraestructura * **Dockerización**: Se creó un entorno conteinerizado usando `Dockerfile` y `docker-compose`. La aplicación corre sobre **Nginx** (Frontend) y se construye con **Node.js/Vite**. * **Estructura del Proyecto**: Configuración de `package.json`, `index.html` limpio, y carpetas organizadas (`src/engine`, `src/view`, `public/assets`). #### 2. Motor de Juego (Engine) * **GridSystem**: Implementación de un sistema de coordenadas global y local. Soporte para rotación de baldosas y detección de colisiones mediante matrices de ocupación (`layout`). * **DungeonGenerator**: Lógica central de generación. * Gestiona el bucle de "Paso a paso" (Step). * Conecta baldosas basándose en las salidas (`Exits`) disponibles. * Valida superposiciones antes de colocar una pieza. * **DungeonDeck (Reglas)**: Implementación fiel al libro de reglas. * Mazo de 13 cartas. * Mezcla inicial de cartas de mazmorra y pasillo. * Inserción de la "Habitación Objetivo" en la segunda mitad (últimas 7 cartas) para asegurar una duración de partida adecuada. * **TileDefinitions**: Base de datos de baldosas (Corridor, Corner, T-Junction, Rooms). * Definición de dimensiones físicas y lógicas. * Definición de puntos de salida (Norte, Sur, Este, Oeste). * Asignación de texturas. #### 3. Visualización 3D (Three.js) * **GameRenderer**: * Escena básica con iluminación ambiental y direccional. * **Visualización de Debug**: `GridHelper` (suelo) y `AxesHelper` (ejes). * **Renderizado de Baldosas**: * Creación de "Grill" (rejilla de alambre) para visualizar celdas individuales lógica. * Implementación de `TextureLoader` para cargar imágenes PNG sobre planos 3D. * **CameraManager**: * Cámara Isométrica (`OrthographicCamera`). * Controles de órbita fijos (N, S, E, O). * Zoom y Panoramización. * **Assets**: Integración de texturas (`.png`) para baldosas, movidas a la carpeta `public/assets` para su correcta carga en el navegador. ### Estado Actual ### Estado Actual ### Estado Actual * El generador crea mazmorras y las visualiza en 3D con texturas. * **Problemas de Alineación**: Persisten desajustes en las conexiones de mazmorra (efecto zig-zag en puertas dobles) en la generación automática. * **Decisión de Diseño**: Se detiene el refinamiento de la generación automática aleatoria. El enfoque cambia a implementar la **Exploración Guiada por el Jugador**, donde la mazmorra se genera pieza a pieza según la decisión del usuario, lo que simplificará la lógica de conexión y evitará casos límite generados por el azar puro. ### Próximos Pasos (Siguiente Sesión) * Implementar al Jugador (Héroe) y su movimiento. * Desactivar la generación automática (`generator.step()` automático). * Crear UI para que el jugador elija "Explorar" en una salida específica. * Generar solo la siguiente pieza conectada a la salida elegida. * Implementar la interfaz de usuario (UI) para mostrar cartas y estado del juego. * Añadir modelos 3D para héroes y monstruos.