La build jugable
Un Titan.exe cocinado con el menú, el mundo, los tres héroes y las cinemáticas, que se recorre desde el menú hasta el Guardián del Paso. Después de un problema de disco y de un error de carga en el cocinado.

Capítulo VIII
La build en una página
Hasta aquí el juego se probaba en el editor. Ahora existe un ejecutable independiente, con los datos cocinados, que se prueba como lo jugaría cualquiera.
| Qué | Contiene |
|---|---|
| Mapas | L_ICOR_Menu (menú 3D) y TitanMain (el mundo de 8 × 8 km) |
| Configuración | Development en Windows de 64 bits; shaders solo SM6 (Titan usa Nanite, Lumen y VSM) |
| Datos del juego | 60 objetos, 3 árboles de Destino, 6 PNJ, 2 misiones y 10 niveles de forja |
| Interfaz | 20 caras de fuente propias (dentro de los assets) y cifras con formato es-ES |
| Cinemáticas | Intro_Aurel, Intro_Hwan e Intro_Ilse, sueltas en Content/Movies/ICOR |
| Texturas | Piscina de streaming de 3.600 MB y anisotropía 16×, aplicadas en partida |

Capítulo VIII
Cocinado · El problema de disco y la caché
Cocinar TitanMain son 38.000 paquetes y más de una hora de trabajo. El primer intento serio se quedó al 98 % por falta de espacio.
El plan. cocinado.md fijó cómo cocinar: el comando BuildCookRun sobre el menú y TitanMain, con el cocinado en una unidad y la caché derivada (DDC) en otra, y dos caminos: el almacén Zen (más compacto) o el clásico IoStore por carpetas (más seguro con un mundo tan grande). Se añadió una orden cocinar a motor.ps1, que toma el cerrojo del motor y comprueba el disco antes de empezar.
Qué se rompió. La caché y el almacén Zen vivían en D:, que se fue llenando. En un cocinado ya llegado a 37.977 de 38.595 paquetes, Zen empezó a responder «Insufficient Storage (507)» a cada escritura. Faltaba un 1,6 % del trabajo, y el cocinado no podía darse por bueno.
Qué se decidió. Mover la caché y el almacén a C:\ICOR-DDC, dejar el cocinado y el empaquetado en C:\ICOR-Builds y cocinar por el camino clásico (-Clasico -Destino C:). La orden reinicia Zen antes de cada cocinado, porque este se queda vivo entre procesos y escribiría en la unidad antigua. Y se fijó una regla: comprobar el espacio libre antes de cocinar (60 GB para el camino clásico).
| Dato | Valor |
|---|---|
| Paquetes | 38.610 en el cocinado final |
| Camino | IoStore clásico, en carpeta |
| Caché antes | D:\UE-DDC: llena |
| Caché después | C:\ICOR-DDC |
| Espacio mínimo | 60 GB libres en la unidad |
| Memoria | Hasta 24 GB de memoria virtual en el cocinador; con el editor cerrado |
| Intento | Qué pasó | Resultado |
|---|---|---|
1 · Caché en D: | El cocinado llega a 37.977 de 38.595 paquetes y Zen deja de poder escribir en el disco | Falla al 98 %: espacio |
2 · Caché en C: | Cocina los 38.608 paquetes en unos 47 min; al final, un error de carga en una voz de un pack de Epic (ver página siguiente) | Falla: error de carga |
| 3 · Incremental | Reutiliza los paquetes ya cocinados, tolera el error y empaqueta en 2 min 48 s | Build completa |
Capítulo VIII
Cocinado · El error del DialogueWave
El segundo intento cocinó todos los paquetes y aun así acabó en fallo. La causa estaba en una voz que el juego no usa.
ERROR 1: «Failed import for DialogueWave»
- Qué dice
- Un error de carga: un asset de sonido (una voz de un pack de héroes de Epic) pide una DialogueWave que no existe en el proyecto. El cocinador lo cuenta como fallo y sale con el código 25 («Error_UnknownCookFailure»).
- Por qué pasa
- El proyecto trae solo parte de los assets de ese pack: cientos de dependencias de voces (victoria, recuerdo, esfuerzos de habilidad) también faltan, pero esas salen como simples avisos.
- Respuesta
- Se añadió
-IgnoreCookErrorsal cocinado y se cocinó en modo incremental. Con eso, los 38.610 paquetes y los contenedores se generan; la voz afectada se queda sin su diálogo.
CocinadoResuelto
Tras casi 47 minutos de trabajo, el cocinado sale con el código 25 aunque todos los paquetes estén cocinados.
El cocinador reutiliza los 38.608 paquetes y solo empaqueta: 2 min 48 s.
Por qué. La voz que falta es de un pack ajeno a las voces propias de ÍCOR, y repetir 47 minutos de cocinado por un error de un asset sin uso no aporta nada. Queda anotado revisar, en una fase posterior, si alguna animación llega a pedir esa voz.
| Otros avisos del cocinado | Qué se hizo |
|---|---|
| Dos materiales de packs de Epic no compilan para SM6 (uno de insectos de ambiente y el de una espada de un héroe) | El motor usa el material por defecto en el juego. Se revisa en una fase posterior |
| Cientos de dependencias de voces que «no existen» en el proyecto | Son avisos de Epic; no impiden el cocinado |
Una referencia de un actor del mundo a una capa de Titan que ya no está (LandscapeDesign) | No impide el cocinado |
Capítulo VIII
Prueba de humo · El menú y los héroes
Con el build en disco, el recorrido automático del juego lo abre como lo haría un jugador: del menú al mundo, sin tocar nada.
Cómo se prueba. tools/probar_exe.ps1 lanza Titan.exe en una ventana de 1920 × 1080 con el recorrido y las capturas automáticos, vigila el registro (si pasan 240 s sin una línea nueva, lo da por colgado y lo cierra) y copia el registro y las capturas a art/capturas/exe-humo. El recorrido usa un autopiloto de pruebas: no es una partida jugada a mano.






Capítulo VIII
Prueba de humo · Del Campamento al Guardián
El recorrido enciende cada Clavo, combate en cada campamento y llega a la arena del primer jefe.






Capítulo VIII
Prueba de humo · Qué se comprobó
El registro de la prueba, paso a paso, y las ocho zonas que recorrió.
| Paso | Comprobación (del registro de la prueba) | Resultado |
|---|---|---|
| Arranque | 20 caras de fuente montadas; 60 objetos, 3 árboles, 6 PNJ, 2 misiones y 10 niveles de forja | Correcto |
| Selector y opciones | Tres héroes con dos capturas cada uno, cuatro pestañas de opciones, créditos y tres dificultades | Correcto |
| Partida nueva | El reproductor abre Intro_Aurel.mp4 (1920 × 1080, 29,3 s) y pinta el primer fotograma a los 0,68 s; la prueba la salta a los 3 s | Correcto |
| Carga del mundo | 5,6 s de viaje con la pantalla de carga animada: 140 fotogramas pintados en 2,44 s (57 fps) | Correcto |
| Zona | Qué se comprobó |
|---|---|
| Campamento del Mercader | Llegada, mapa, pausa, Clavo y descanso |
| La Granja Vieja | Sospecha, alerta y combate; subida al nivel 2 |
| Clavo de la Granja Vieja | Clavo encendido y menú del Clavo |
| Aldea de Lerigoth | Combate; nivel 3 |
| Clavo de Lerigoth | Clavo y nivel 4 |
| Orilla del Lago | Combate y nivel 5 |
| Clavo del Templo Antiguo | Clavo y descanso |
| Arena de las Flores | El Guardián del Paso despierta y llega a su fase 2 |
Audio. En el recorrido sonaron 873 pasos, 58 aterrizajes, 70 sucesos y 89 voces.
Capítulo VIII
Lo que dejó la prueba y lo que queda
La build arranca, se recorre y se cierra. Estas son las cosas que la prueba señaló y cómo se abordan.
| Hallazgo | Detalle | Estado |
|---|---|---|
| El autopiloto se atasca cerca del Guardián | Varios atascos a unos 45 m del destino y un recolocado; la prueba hace invulnerable al héroe si el jefe tarda demasiado | Es de la prueba |
| Faltan las clases de sonido del motor | Los volúmenes se aplican a mano por categoría | Fase posterior |
| Falta una animación de charla de Titan | El PNJ sigue sin ella | Fase posterior |
| El volcán y Ovhar no entran en esta prueba | El recorrido de humo acaba en el Guardián; el volcán se probó antes en el editor | Fase posterior |
| Rendimiento del build sin medir | Hacen falta rastros con -csvprofile y -trace sobre la build, y la caché de PSO empaquetada | Fase posterior |
| Build de lanzamiento | Shipping, con el trazado de caminos desactivado en la configuración | Fase posterior |








