5.10.08

KISSquillosidades

Red Forces fue el primer proyecto de videojuego "medianamente grande y serio" en el que he tenido el placer de embarcarme. Antes había programado alguna cosa propia, pero ninguna para juegos y casi ninguna tan compleja.

En el caso de Red Forces, dediqué bastante tiempo para conseguir que los enemigos del juego se comportaran de forma similar a los de su referente, el Green Beret. De estas lides, saqué unas cuantas cosas en claro que paso a enumerar.

La primera, que muchas veces le daba a la IA que observaba una complejidad mayor de la que suponía. Después de exámenes más exhaustivos, quedaba patente que esos comportamientos se podían descomponer en elementos muy simples (con la consecuente simplificación del complicado código que había "replicado" para el comportamiento).

La segunda, derivada de la primera, que al poner en funcionamiento un sistema de comportamientos, puede aparecer un comportamiento emergente que convierta dicho comportamiento en uno más sofisticado (tanto en la apariencia como en la práctica). Además, dicho comportamiento emergente resulta escalable en el juego: aunque de uno en uno, una serie de enemigos se comporte de una determinada forma (con sus propios comportamientos emergentes), cuando aparecen todos a la vez pueden aparecer más sorpresas (para bien o para mal).

La tercera es un aviso para navegantes. Si no conocéis la filosofía KISS, el resumen es que se debe intentar mantener las cosas lo más simples posible. Esto, que en principio es un consejo para tener sistemas limpios y fáciles de mantener, tiene implicaciones extra cuando se trata de IA: si ya con una máquina de estados de comportamientos simples se puede obtener un resultado complejo, con máquinas de estados de comportamientos complejos el resultado es... impredecible. Y no queremos esto para nuestros juegos.

Por poner un ejemplo práctico, durante el desarrollo del Red Forces me topé desde enemigos que salían huyendo del personaje (cuando deberían ir a por él), se ponían a subir y bajar compulsivamente escaleras de mano, flotaban en el aire al terminar de subirlas, o se hundían en el suelo al terminar de bajarlas (algún día hablaré de mi trauma con las escaleras... las escaleras del Red Forces tienen más estudios que el lanzamiento del Apollo XII), enemigos que saltaban, disparaban en el aire y continuaban saltando desde el aire indefinidamente, subiendo cada vez más... y un largo etcétera de comportamientos no deseados.

La cuarta tiene que ver con la estimación de plazos. Aquí tiene que ver cierta Ley de Murphy (en concreto, la Regla de Westheimer) sobre la planificación:
Cálculo del tiempo que se necesita para llevar a cabo una tarea:
  • Calcule el tiempo que usted considere necesario.
  • Multiplíquelo por dos.
  • Cambie a la unidad de medida inmediatamente superior.

En mi caso, tengo un factor de 3x con respecto a los tiempos que intento calcular. El problema es que ese factor 3x se mantiene si el tiempo previsto tenía en cuenta el factor 3x...

Esta otra Ley de Murphy queda fuera del propósito principal de la entrada, pero la dejo como bonus, porque sigue siendo muy cierta:
Regla de Planificación del 90-90: El primer noventa por ciento de la tarea requiere el noventa por ciento del tiempo, y el ultimo diez por ciento de la tarea necesita el otro noventa por ciento del tiempo.

Red Forces

Definitivamente, el Red Forces está listo para patear traseros. Las versiones en progreso ya han sido eliminadas, y se puede descargar gratuitamente desde la web de juegos de Nerlaska.

El vídeo final:



Sugerencia: quizás quieras pasártelo cuatro o cinco veces seguidas... ;) ¡A disfrutarlo!