
La mañana del 27 de octubre me desayuné con una cifra: en un lote de combates espejo, dos figuras idénticas una contra otra, el defensor había ganado 790 y el atacante 199, sin que nada en las reglas favoreciera a ninguno de los dos. La arena llevaba dos semanas funcionando, con sus pruebas en verde, y yo no lo había notado. Lo destapó una tabla, la tabla de resultado esperadoLa tabla que la IA consulta antes de atacar: para cada pareja de figuras, quién gana el combate y con cuánta vida, calculada simulando muchos duelos entre ellas. que la IA consulta para saber quién gana un combate: había pasado a muestrear el combate tal como lo juegan dos IA, sin la suerte de por medio, y sin el ruido de la suerte el sesgo quedó a la vista. Bravo por mí.
Esta entrega va de la arena, de por qué el combate en tiempo real de Orbafall Legions es determinista hasta el último tick y de lo que salió al medirlo, muerte súbita incluida.
1 - Diecisiete pasos por segundo
¿Qué es un combate determinista? Grosso modo, uno que, con la misma semilla y las mismas pulsaciones, sale idéntico siempre. La arena de Orbafall Legions simula por ticks, pasos de tiempo fijos, diecisiete por segundo, y en cada tick lee las entradas de los dos luchadores, mueve, resuelve golpes y proyectiles y pasa al siguiente. Toda la aritmética es entera, en unidades lógicas del mundo: no hay un solo número en coma flotanteLa forma habitual de guardar números con decimales en un ordenador. Es rápida, pero el redondeo puede variar entre máquinas y compiladores. en esa carpeta, y un guardián automático falla si asoma uno, porque un float se redondea distinto según la máquina y adiós determinismo. Hasta los senos y cosenos salen de una tabla de punto fijoNúmeros con decimales guardados como enteros multiplicados por una constante. Se operan como enteros y salen iguales en todas partes..
Dos ejecuciones con la misma semillaEl número del que parte un generador de azar. Con la misma semilla salen las mismas tiradas, en el mismo orden. y las mismas entradas producen la misma traza y el mismo hashHuella de longitud fija calculada a partir de unos datos. Si cambia un solo bit de los datos, cambia la huella; dos huellas iguales dicen que los datos son los mismos. del estado final. Las entradas humanas se registran en trozos de 256 ticks, de modo que guardar a mitad de un combate y cargar pierde, como mucho, un trozo. El combate se integra en el motor del tablero con cuatro órdenes (empezar, mandar entradas, resolver y resolver automáticamente), y cuando se cerró su fase, el 14 de octubre, el catálogo del juego contaba cuarenta tipos de evento y veintiocho órdenes.

Imagen 1. La arena del 18 de octubre, con el paquete de pruebas: dos luchadores, sus barras y el «listo» de cada jugador con su mitad del teclado.
¿Para qué tanta manía? Al principio pensaba en dos cosas: el multijugador en línea, donde por la red viajan solo las pulsaciones, y la defensa contra trampas, porque un combate que se puede rejugar se puede verificar. La tercera salió de rebote, y la contaré en la entrega 12: un combate determinista se puede portar a otro lenguaje y a otra máquina y comprobar, duelo a duelo, que coincide.
2 - Una arena con reloj
El primer problema de diseño de la arena fue que los combates no terminaban. En las pruebas de humoLas pruebas rápidas que comprueban que algo arranca y hace lo básico, antes de las pruebas finas. de la primera semana, trece de dieciséis duelos entre cerebrosEl programa que decide las jugadas de un asiento de IA, en el tablero o en la arena. de prueba acabaron por tope de ticks, y en la primera partida que jugué yo había duelos entre figuras que no se alcanzaban y que podían no acabar nunca: una de ellas, de hecho, me disparaba sin hacerme daño, porque el proyectil nacía por delante del objetivo a quemarropa. Tres arreglos entraron el 20 de octubre: un tope de 3060 ticks, unos tres minutos, al llegar al cual el combate termina por tiempo; un cerebro provisional que busca la fila del rival antes de disparar, con lo que los duelos sin terminar del paquete del productoEn Orbafall Legions, los ficheros de datos del juego: reglas, figuras, mapas y textos. Hay uno sintético, de pruebas, con figuras inventadas para ejercitar el motor, y el del producto. bajaron de 280 de 1125 a 5; y una tecla para salir del duelo de desarrollo, que hasta entonces no existía (y yo, claro, me quedé atrapado dentro).
Un tope de tiempo es un parche, y me temía que fuese explotable: quien va ganando se aleja y espera. Yo ya tenía apuntada la alternativa desde el 11 de octubre, de una conversación sobre cómo forzar el contacto: que el área segura de la arena se fuera reduciendo a partir de cierto tiempo, con daño para quien pise fuera, «así no se depende de un time up explotable». Es la zona que reconocerá cualquiera que haya jugado a un battle royaleGénero en el que muchos jugadores caen en un mapa que se va encogiendo hasta que queda uno en pie., puesta aquí para que dos figuras se peguen pronto.
3 - La muerte súbita, por fases
La muerte súbita entró el 24 de octubre, el día en que medí que solo 16 de 80 partidas entre IA terminaban y que casi todos los combates acababan por el tope de tiempo. Con la zona, ningún duelo de las matrices quedó sin terminar. Esa noche la rehicimos en una sesión de diseño, y quedó así:

Imagen 2. Un combate, tick a tick: 45 segundos de combate libre, 45 de muerte súbita en tres fases, y el tope de seguridad.
- Empieza a los 45 segundos y se cierra en 45 más, como valor provisional. La idea es que las arenas sean rápidas y dinámicas, que en una partida hay muchas.
- Por fases. Al empezar cada fase se ve el círculo siguiente, más fino; hay un tiempo de gracia con el círculo quieto, en el que la IA se recoloca, y luego se encoge hasta él. Cada círculo cae entero dentro del anterior, con el centro al azar [sorteado de un flujo propio, para que no toque el azar del combate], y siempre queda un hueco libre de obstáculos en el centro.
- Un reloj neutral. El daño fuera del círculo es un porcentaje de la vida máxima (una, dos y tres milésimas por tick según la fase) en lugar de una cantidad fija, para que la zona pese lo mismo a una figura grande que a una pequeña y gane quien conserva más fracción de vida. Fuera del círculo no se gana vida. Después de la última fase el daño sigue creciendo, y a los tres minutos sigue habiendo un tope de seguridad.

Imagen 3. La muerte súbita en el juego, el 25 de octubre: el círculo que se cierra y, más fino, el siguiente.
De esa misma sesión salió la cámara que tendrá la arena cuando llegue el arte: un zoom suave que se acerca cuando los luchadores se aproximan y se aleja cuando se separan o cuando empieza la muerte súbita, para que se vea dónde está el centro de la zona. Y una idea que me gusta y que no sé si sobrevivirá: que pisar una zona con malus, o internarse un momento en la zona de peligro, pueda ser una jugada si responde a una táctica con esperanza positivaQue una jugada compense a la larga: si se repitiera muchas veces, su resultado medio sería favorable..
4 - El defensor ganaba por salir a la derecha
Vuelvo al 27 de octubre. La causa del sesgo era doble y tonta: el asiento de índice menor salía siempre por el mismo lado de la arena, y su máquina se movía primero en cada tick, de modo que dentro de un mismo tick el segundo luchador ya veía al primero movido. Con la suerte activada, ese medio tick de ventaja se perdía en el ruido, pero sin suerte bastaba para decidir el combate.
El arreglo es un tic simétrico. Las dos máquinas de un tick leen al rival como estaba al empezar el tick, y sus efectos sobre él [el golpe que borra un ataque, el empujón, la confusión, la vida que quita un drenaje] se encolan y se aplican cuando han corrido las dos. Cada cerebro sortea de su propio flujo de suerte. Las salidas de los luchadores son espejo una de otra, y la semilla del combate sortea qué ranuraCada una de las dos posiciones de salida de la arena, espejo una de otra. toma cada uno. Tres pruebas lo sostienen: intercambiar las ranuras da el mismo combate tick a tick, dos luchadores espejo acaban igual, y sobre dos mil espejos las victorias de las dos ranuras quedan dentro del ruido.

Imagen 4. Victorias por ranura en dos mil combates espejo del paquete del producto, antes y después.
Las dos mitades de la tabla de resultado esperado, una por cada orden de asientos, salieron idénticas fila a fila tras regenerarla, y desde entonces la tabla ya no lleva columna de asiento. Lo que me dije aquella mañana lo sigo pensando: las arenas deberían ser simétricas, afectadas solo por el azar de los mapas de arena y de los cierres de la muerte súbita, que tocan a la suerte por igual, y cualquier otra asimetría la trato como un fallo. Esta, en concreto, no la vi hasta que una tabla la midió por mí.
5 - Diez segundos son pocos
La última vuelta a la arena, de momento, es de ritmo. El 31 de octubre medí que los combates del paquete del producto duraban una medianaEl valor que deja la mitad de las medidas por debajo. Un valor disparatado la mueve mucho menos que a la media. de nueve segundos, y eso se nota enseguida al jugar, porque la preparación del combate dura más que el combate. Fijé una mediana objetivo de unos 45 segundos, con la muerte súbita en 45 segundos abiertos y 90 cerrados para las que se alarguen, configurable al crear la partida, y una condición que vale para toda la interfaz: la transición de tablero a arena tiene que ser muy rápida, y al defensor se le puede ofrecer resolver automáticamente, con confirmación, las arenas que no merezcan el tiempo. Alargar los combates sin que se hagan eternos es trabajo del kit de las figuras, que será la entrega 13.
Y una regla pequeña que cierra un cabo del determinismo: si dos figuras mueren en el mismo tick, mueren las dos, salvo que sean los dos portadores del orbe, que entonces se lanza la revancha de la que hablaré en la entrega 9.
6 - Palabras finales
Las tres decisiones de diseño de esta entrega las tomé con una cifra delante [trece de dieciséis, dieciséis de ochenta, 790 contra 199], y sin esas cifras probablemente seguiría sin ver ninguno de los tres problemas; lo apunto porque es la primera vez que diseño algo así y no me fío de mi ojo. Y una pregunta para quien haya diseñado duelos cortos: ¿muerte súbita con una zona que se cierra, o límite de tiempo? ¿Qué os parece más justo cuando el combate dura menos de un minuto?
6.1 - Para el futuro
La siguiente entrega es la del día en que el juego dejó de ser texto: trece horas entre abrir la fase de presentación y tener tablero, arena, compra y colocación en pantalla, y lo que vino los dos días siguientes.
Orbafall Legions es un proyecto personal no oficial, no afiliado con Silicon Knights, SSI, Mindscape ni Ubisoft.
Versión 1.0R1 (02/11/2026)
Changelog
- Versión 1.0R1 (02/11/2026)
- Repaso de redacción.
- Versión 1.0R0 (15/10/2026)
- Versión inicial.