Fase 1 · Prototipo La Raya
Entre el 15 y el 16 de octubre de 2026 ÍCOR pasa de los documentos a un prototipo jugable: una arena con principio y final, cuatro oleadas de Heraldos y un Huésped que habla.

Capítulo C
La Raya en una página
Una arena de combate autocontenida, escrita en C++ y jugable de principio a fin.
Qué es. La Raya es la frontera donde chocan el Alba y el Ocaso cuando cambia la Hora: la Guerra de las Dos Horas de la fase 0, hecha jugable. La arena es una plaza de losas talladas en ruinas, rodeada de pilares rotos y cerrada por acantilados.
Qué hay. Pantalla de título con el key art propio; cuatro oleadas de Heraldos con la luz pasando del Alba al Ocaso; combate cuerpo a cuerpo con combo de tres golpes, ataque fuerte, esquiva con invulnerabilidad, guardia con parada, aguante, fijación de objetivo y el «Latido del Huésped» para curarse. Morir cuesta un recuerdo, y la voz del Huésped, la música y los efectos acompañan toda la partida.

Capítulo CRESPONSABLE: Alejandro Brito Olivera (mundo y presentación)
La arena y las cuatro oleadas
Cada oleada cambia los enemigos, la luz y lo que dice el Huésped.
| Oleada | Heraldos | Luz | El Huésped |
|---|---|---|---|
| I · La Primera Hora | 3 del Alba | Alba, sol alto | «El Alba no odia a nadie. Siega. ¿Tú odias al trigo?» |
| II · Brasas | 4 del Ocaso | Atardecer | «Cuando empuje, no empujes. Dóblate como el trigo…» (enseña la parada) |
| III · La Hora | 3 del Alba y 3 del Ocaso | Entre dos luces | «Blanco de día, morado de noche…» |
| IV · El Heraldo Mayor | El Mayor del Ocaso, 2 del Ocaso y 1 del Alba | Ocaso pleno | «A ese no le mires a los ojos. Es de los que se acuerdan.» |


Primera versión: losas con un material de cuadrícula provisional y textos aún sin dibujar.
Segunda versión: suelo tallado de piedra, pilares, antorchas y brasas del Ocaso.
Capítulo CRESPONSABLE: Alejandro Brito Olivera (combate del héroe)
Combate: combo, esquiva, parada y fijación
Un combate con peso y una decisión clara: atacar, esquivar o parar justo antes del golpe.
| Acción | Teclado y ratón | Mando |
|---|---|---|
| Moverse | WASD | Stick izquierdo |
| Correr | Shift | L3 |
| Cámara | Ratón | Stick derecho |
| Combo (hasta 3 golpes) | Clic izquierdo | RB |
| Ataque fuerte | E | RT |
| Esquivar (invulnerable al empezar) | Espacio | B |
| Guardia; justo antes del golpe, parada | Clic derecho | LB |
| Fijar objetivo | Q o rueda | R3 |
| Latido del Huésped (curar, 3 cargas) | R | X |
| Empezar o reintentar | Enter o clic izquierdo | A |
| Mostrar u ocultar controles | F1 | Vista |

Parada. Si se pulsa la guardia justo antes del golpe (ventana de 0,22 s), el Heraldo queda abierto unos 1,9 s y recibe el daño ×2,5.
Esquiva. Da invulnerabilidad al empezar y cuesta 18 de aguante.
Fijación. Orienta la cámara y los ataques hacia el objetivo elegido.
Capítulo CRESPONSABLE: Zihao Zhong (Kenny) (IA y oleadas)
Los Heraldos y el Heraldo Mayor
Tres variantes de enemigo con carácter propio y un jefe con superarmadura.
| Personaje | Salud | Daño | Notas |
|---|---|---|---|
| Aurel Gris | 120 | Combo 20 / 22 / 32; fuerte 44 | Aguante 100 (combo 14–18, fuerte 30, esquiva 18). Latido: +45, con 3 cargas que se rellenan entre oleadas |
| Heraldo del Alba | 70 | 14 | Más lento y paciente |
| Heraldo del Ocaso | 85 | 17 | Más rápido y agresivo |
| Heraldo Mayor del Ocaso | 600 | 30 | Superarmadura: solo lo tambalean los golpes fuertes o el tercer golpe del combo |
IA de los Heraldos. Máquina de estados en cada fotograma, sin malla de navegación: aparecer, acechar o rodear, pedir turno, atacar, tambalearse, quedar aturdidos tras una parada y morir.
Tokens de ataque. Como mucho atacan 2 Heraldos a la vez (3 desde la oleada III). El resto rodea a Aurel a unos 4 m, así que el peligro es el grupo y no el individuo.



Capítulo CRESPONSABLE: Zihao Zhong (Kenny) (HUD) · Alejandro Brito Olivera (presentación)
Morir cuesta un recuerdo
Morir no es el final: el Huésped devuelve a Aurel al Clavo y se cobra un recuerdo.
- 1 · La voz de Olvido
El primer recuerdo que se pierde. El Huésped: «Te levanto. Pero de balde no siega nadie…»
- 2 · Lo del pan con aceite
El segundo. Con poca salud, el Huésped avisa antes de que ocurra.
- 3 · La espiral del martillo
La marca de clavero de Aurel. Con ella llega el Olvido: «Ya está, casero. Ahora me acuerdo yo por los dos.»



Reaparición en el Clavo. Aurel vuelve junto a un clavo de hierro gigante, con la runa brillante y una luz. El Huésped: «El hierro me deja sordo un rato…»
Victoria. «La Raya queda en silencio», con el tiempo, las bajas, las paradas y los recuerdos perdidos.
Capítulo CRESPONSABLE: Zihao Zhong (Kenny) (audio)
La música y la voz del Huésped
Veinticuatro assets de audio: dos pistas de música, trece líneas de voz y nueve efectos.
ICOR/Arena/Audio| Audio | Cantidad | Origen |
|---|---|---|
| Música | 2 pistas | Generada con Lyria 3 Pro en Artlist, solo a partir de texto propio |
| Voz del Huésped | 13 líneas | ElevenLabs Multilingual v2 en Artlist, con una voz sénior en español: siete líneas del guion de la fase 0 y seis nuevas con la misma voz |
| Efectos | 9 | Sintetizados con ffmpeg: impacto, impacto fuerte, parada, bloqueo, tajo, esquiva, latido, aparición y muerte del Heraldo. Son propios y sin licencias de terceros |
Capítulo CRESPONSABLE: Alejandro Brito Olivera (combate) · Zihao Zhong (Kenny) (sistemas)
Arquitectura: una capa autocontenida en C++
Para tener algo jugable cuanto antes, la arena no depende de GAS ni del Mover de Titan.
Habilidades y efectos con el Gameplay Ability System, movimiento con Mover y los Heraldos con State Tree.
Un conjunto de clases autocontenido en Source/ICORJuego/Arena/, con pocas piezas que puedan fallar.
Por qué. Es el plan B del diseño técnico: menos piezas experimentales y algo jugable antes. El esqueleto con GAS (cinco módulos y 68 ficheros, compilados sin errores en 227 de 227 acciones) queda intacto para cuando toque.
| Clase | Qué hace |
|---|---|
AICORLuchador | Base común: vida, bando, golpes, animaciones de un solo uso e hitstop |
AICORAurelArena | Aurel: cámara, entrada, combo, ataque fuerte, esquiva, guardia y parada, curación, fijación y autopiloto de prueba |
AICORHeraldoArena | IA de los tres Heraldos: acechar, pedir turno, atacar, tambalearse, quedar aturdido y morir |
UICORAnimHeraldo | Velocidad y dirección para el Blendspace |
AICORArenaGameMode | Fases, oleadas, tokens, muertes y recuerdos, líneas del Huésped, sonido y la luz de la Hora |
AICORHUDArena | HUD en Canvas: título, barras, recuerdos, mensajes, barra del jefe y pantallas finales |
Golpes. La hoja se barre con 5 esferas entre los sockets de la espada solo mientras la punta va a más de 650 cm/s: la ventana de daño sale de la propia animación. A mitad del tajo se comprueba además un arco delante, como red de seguridad.
Animación. El Animation Blueprint original del héroe se usa sin tocar. Los Heraldos llevan los suyos (ABP_Heraldo y ABP_HeraldoMayor), porque su pack no trae ninguno.
La Hora. El GameMode gira el sol y cambia su color y el de la niebla al pasar del Alba (oleada I) al Ocaso (oleada IV).
Medidas. 8 ficheros y unas 2.700 líneas; primera compilación sin errores.
Capítulo CRESPONSABLE: Zihao Zhong (Kenny) · Alejandro Brito Olivera
Pruebas y problemas encontrados
El juego se probó con un autopiloto y con una prueba automática de la entrada. Estos son los hallazgos y cómo se resolvieron.
| Hallazgo | Solución |
|---|---|
No se veía ningún texto. FCanvasTextItem solo dibuja si la fuente lleva un UFont, y el estilo de Slate no lo trae. | Se usa la fuente por defecto del motor, cargada en tiempo de ejecución. |
| La noche del Ocaso era demasiado oscura. | El sol queda a −13° y conserva el 80 % de la intensidad. |
| Los Heraldos se amontonaban al atacar a la vez. | Piden turno a 7,5 m; solo se acerca quien lo tiene y el resto rodea a unos 4,2 m. |
| El recuento de la oleada incluía a los muertos. | La lista se limpia al empezar cada oleada. |
| La cámara del jefe miraba desde el suelo. | La inclinación se limita a −6° y, con el Mayor fijado, la cámara se aleja hasta 6,2 m. |
| Error al pulsar Play. El Blueprint original del héroe llamaba a una función de realidad virtual que ya no existe en la 5.8. | Se eliminaron ese nodo y su evento de entrada; el Blueprint compila. |
Qué no cubre. La prueba de la entrada no mide la sensación con un mando real (sensibilidad y zona muerta): se aborda con las pruebas de juego a pie de la fase 3.
Capítulo CRESPONSABLE: Alejandro Brito Olivera (presentación)
La partida en vídeo
Un PDF no reproduce vídeo: aquí van fotogramas repartidos por toda la partida, con su minuto.

Dónde está la evidencia. Las capturas de cada hito están en art/capturas/fase1/: título, HUD y Huésped, oleadas, Heraldo Mayor, muerte y recuerdo perdido, Olvido, La Hora y victoria.
Cómo se jugó. Varias partidas completas con el autopiloto (victoria y muerte hasta el Olvido) y la prueba automática de la entrada. La victoria de esta partida: 1:49, 16 Heraldos caídos, 12 paradas y 0 de 3 recuerdos perdidos.
Capítulo CRESPONSABLE: Zihao Zhong (Kenny) (pipeline)
Empaquetado y lo que se aprendió del cocinado
Se intentó generar un ejecutable de La Raya. Se aplazó, pero dejó cuatro lecciones para el build de la fase 3.
Cocinar solo L_Arena_Raya con una configuración propia (CustomConfig = ArenaRaya), solo DX12 SM6 y salida en D:.
El perfil de empaquetado queda guardado y desactivado, listo para retomarse.
Por qué. El cocinado ocupaba unos 11 GB de RAM, que hacen falta para probar TitanMain en el editor, y el objetivo cambió al RPG en el mundo de Titan.
El C++ de la arena carga casi todo con LoadObject y LoadClass, y el cocinado no lo ve. Hay que listar esas carpetas para cocinarlas siempre; cada LoadObject nuevo se añade ahí.
Dos listas de rutas blandas de los ajustes cargaban TitanMain al arrancar. Vaciándolas en la configuración propia, el cocinado bajó a 2.253 paquetes.
El cocinador llegó a 13 GB con el editor abierto (otros 11 GB) y 13 workers de shaders: quedaron 0,2 GB libres. Hay que cocinar con el editor cerrado.
Un target propio con bOverrideBuildEnvironment permite que la configuración propia llegue al build; el resultado: ICORArena.exe de 332 MB (más 396 MB de símbolos).
| Paso | Resultado |
|---|---|
| Compilar el target del juego | 128 s la primera vez y 1,3 s después |
| Cocinado, intento 1 | Cortado a los 3 min: estaba metiendo TitanMain (4,5 GB solo en su .ubulk) |
| Cocinado, intento 2 | Shaders globales y 2.149 de 2.253 paquetes en unos 75 s; cancelado justo antes de terminar |
Capítulo CRESPONSABLE: Zihao Zhong (Kenny) · Alejandro Brito Olivera
Qué quedó para las fases siguientes
El prototipo cumplió su criterio de salida. Lo que no cerró se aborda así.
| Tema | Estado en La Raya | Dónde se aborda |
|---|---|---|
| Dificultad y ventana de parada | Afinadas con el autopiloto, que para muy bien. Con mando o ratón la parada de 0,22 s puede resultar estricta. | Pruebas de juego a pie de la fase 3 |
| Animaciones | La esquiva usa un arranque de carrera acelerado, la guardia es un desvío congelado a los 0,2 s y el ataque fuerte es una habilidad del héroe. | Se aborda en una fase posterior |
| El horizonte | Los acantilados de la arena son estilizados y la estatua caída queda tapada. | Fase 2: el combate pasa al mundo de Titan |
| Audio | La voz y la música funcionan; los efectos sintetizados son sencillos. | Fase 3: audio del mundo (capítulo IV) |
| Build empaquetada | Aplazada; el perfil queda guardado. | Fase 3: cifras medidas en un build cocinado |
| GAS, State Tree y DataTables | La arena es una capa autocontenida y los números están en constantes; el esqueleto con GAS queda intacto. | Se aborda en una fase posterior |








