domingo, 23 de enero de 2011

Skynet se une al enjambre: cómo la Supermente Berkeley ganó la competencia de StarCraft AI (Inteligencia Artificial) del 2010 (Parte III)


El concepto de campos potenciales es sencillo, pero con varios campos activos e interactuando unos con otros, el reto de hacer funcionar tal controlador es encontrar los parámetros de fuerza adecuados. Los campos de repulsión fuertes pueden mantener los mutaliscos seguros durante mas tiempo, pero les impiden concentrar su fuego, y diferentes enemigos requieren diferentes tipos de comportamiento por tanto diversos campos de fuerzas. Sin embargo, repetirlo manualmente a través de parámetros y hacer los ajustes tomaría demasiado tiempo. 

En vez de eso, dejamos que la Supermente aprendiera a luchar por su propia cuenta.

En la mitología nórdica, Valhalla es un paraíso donde las almas de los guerreros participan en la batalla eterna. Usando el Editor de mapas de StarCraft, construimos el Valhalla para la Mente Suprema, donde podía ejercitarse a través de diferentes escenarios de combate repetida y automáticamente. Mediante la ejecución de ensayos repetidos en Valhalla y variando la intensidad de los potenciales de campo, el agente aprendió la mejor combinación de parámetros para cada tipo de compromiso. 

El siguiente vídeo muestra a los mutaliscos de nuestro agente luchando contra un alto templario Protoss. Los altos templarios son un contrario estándar contra los mutaliscos en los juegos de humanos: los ataques de tormenta psi de los templarios abarcan toda una zona, masacrando mutaliscos aglomerados. Con un potencial repulsivo bien puesto a punto, sin embargo, los mutaliscos se dispersan inmediatamente para evitar las tormentas y, a continuación se reagrupan para contraatacar a los altos templarios con facilidad.





La elección inteligente de blancos completa el controlador de los mutaliscos. El control de potenciales de campo funciona bien dado un objetivo a atacar, pero la elección correcta de los objetivos fue un dolor de cabeza para nosotros. Los mutaliscos no eran inmunes a la plaga de los códigos de estrategias fijas: nuestros esquemas iniciales de elección de blancos se basaban en jerarquías de amenazas simples, elaborados en general para comportamientos razonables e interrumpidos periódicamente por fracasos espectaculares. Los mutaliscos casi destruían un centro de comando valioso, a continuación, salían corriendo para atacar un marine casi a mitad del mapa o se suicidaban valientemente contra las líneas de torres de misiles enemigos.
Al final, la solución era darle al agente la capacidad de predecir los resultados de sus acciones. El daño que cada unidad infringe frente a otra unidad es conocido, así que es posible calcular aproximadamente cuánto daño recibirá un mutalisco en el proceso de matar a un objetivo, y cuánto tiempo tomará. Mediante la asignación de valores a los objetivos y los mutaliscos, basados más o menos en su costos en recursos, el agente puede predecir el valor de elegir un objetivo en particular, decidir qué objetivos vale la pena atacar, y cuáles son los objetivos a priorizar. Esto le permite tomar decisiones inteligentes al elegir objetivos. 
El vídeo a continuación, de la victoria de la Mente Suprema en contra de Oriol, muestra el enjambre mutalisco con esta mejora final, atacar la base Terran y elegir objetivos de alto valor evitando al mismo tiempo fuerzas enemigas mas poderosas.




El resultado final es un enjambre mutalisco inteligente que elige sus ataques, eligiendo los objetivos de alto valor y evitando luchas imposibles de ganar hasta que se posea una fuerza abrumadora. Las bases enemigas y los ejércitos son simplemente desarmados un objetivo a la vez.


Disipando la niebla de la guerra


A mediados de verano, la planeación flexible de contrucciones y un enjambre inteligente, de mutaliscos entrenados en Valhalla, estaban convirtiendo la Supermente Berkeley en un formidable oponente. A medida que continuó la prueba, sin embargo, descubrimos que nuestro agente tenía una debilidad, que puso de relieve la importancia crítica de la adquisición y gestión de la información sobre el enemigo.
Los Mutaliscos son unidades de segundo nivel, lo que significa deben crearse varios edificios y mejoras antes de que puedan crearse en el juego. Hasta que este punto se alcance, el agente es vulnerable, esto era precisamente lo que habíamos visto en las pruebas. Una vez que el enjambre mutalisco ha alcanzado un cierto tamaño era casi imparable, pero los opositores podrían ganar atacando temprano y previniendo en primer lugar que se formaran los enjambres.
Nuestra primera respuesta fue forzar el planeador de construcciones a construir más defensas estáticas y unidades de tierra baratas al principio del juego. Esto lo protege contra ataques tempranos, pero retrasa el progreso hacia la creación de mutaliscos. Fue un reflejo de la dificultad general de balancear las prioridades de construcción como el crecimiento económico y la fuerza militar. Crear demasiados trabajadores de construcción crea una vulnerabilidad a ataques tempranos, pero muy pocos trabajadores resultan al final en pequeños ejércitos y recursos insuficientes. Las defensas estáticas innecesarias agotan los recursos de las fuerzas ofensivas. 
Lograr el equilibrio correcto depende de la lectura de las fuerzas del enemigo y sus intenciones, un empuje inicial se debe de seguir para obtener defensas, pero un enemigo que construye lentamente significa que el agente debe ir a por mas mutaliscos.
Si el agente pudiera ver lo que su enemigo estaba produciendo, el planeador de construcción podría ajustarse a la producción adecuada. Debido a la niebla de la guerra, observar una parte del mapa requiere colocar una unidad cerca de allí, así que la recopilación de información sobre el enemigo requiere el reconocimiento activo frente a las amenazas del enemigo. En las primeras partes del juego, esto significa llevar un trabajador o una unidad de tierra rápidamente a la base enemiga y sobrevivir el tiempo suficiente ver lo que el oponente ha construido. 
Para los Zerg, mucha de la exploración de información en etapas medias y finales del juego proviene de el uso adecuado de los OverLords. Los OverLords son unidades voladoras lentas, con un rango de observación largo que también proporcionan abastecimiento, en una métricas de juego que dicta el número de unidades que se pueden construir. Una vez que tienes OverLords dispersos por el mapa mejoran la orientación y la macro planificación, pero perder OverLords reduce tanto la visión del mapa como la capacidad de construir más unidades. El beneficio obtenido de las observaciones tiene que ser equilibrado con el riesgo de perder OverLords que además necesitan ser protegidos del encuentro con unidades enemigas.
Nuestra solución para el problema del control de los Overlords y la exploración tuvo un comienzo sin inspiración. El planificador de rutas incorporado de StarCraft para las unidades de tierra es terrible, un irritante que ha obstaculizado los jugadores durante más de una década. A medida que progresó el desarrollo, Dan decidió que no íbamos a soportar la indignidad de ver las unidades atascadas entre paredes y persiguiendo sus propias colas, por lo que pusimos en marcha nuestro propio planificador de rutas.
Simplemente ir del punto A al punto B con éxito fue suficientemente útil, pero el verdadero cambio llegó de la combinación de la planificación de ruta con la información sobre las unidades enemigas. La Supermente mantiene un mapa permanentemente actualizado de las posiciones de cada unidad enemiga que se han visto alguna vez y la última ubicación conocida de esa unidad. Dado que el rango de ataque y la velocidad de las unidades en StarCraft es conocido, el agente puede combinar esta información con su mapa de las unidades enemigas para construir un mapa de amenazas. Para cada tipo de unidad, se puede calcular un nivel de peligro para determinada área y para cada unidad. Este mapa de amenazas puede ser combinado con el algoritmo de planificación de ruta mediante la inclusión de la amenaza en un área dada del mapa como parte del costo de recorrerla. Caminos cortos que están bajo gran amenaza son menos deseables que caminos largos que ofrecen recorridos mas seguros. Modificar el algoritmo de esta manera requiere algunos trucos técnicos para que se ejecute lo suficientemente rápido como para ser útil, pero una vez funcionando demostró ser una herramienta valiosa. Aunque originalmente destinados a las unidades de trabajo, de repente lo empezamos a utilizar en todas partes.
La planificación de rutas con conocimiento de riesgos permitió una serie de mejoras. Los Mutaliscos podían elegir sus rutas más allá de las defensas enemigas para elegir determinados objetivos. En el juego temprano, el agente podría infiltrarse en la base del enemigo con unidades de tierra y mantenerse con vida, evitando las unidades de combate del enemigo. La planificación de ruta también permitió dispersar OverLords por todo el mapa sin miedo de perderlos. La visión general del juego de nuestro agente mejoró notablemente. Con una mejor idea de las fuerzas del enemigo, el planificador de construcciones podría reaccionar a las acciones enemigas, creando defensas y optimizando el equilibrio entre economía y fuerzas militares.
El siguiente vídeo muestra un ejemplo de esto. En este vídeo, uno de los Overlords de nuestro agente entra en la base enemiga y descubre una puerta estelar Protoss en construcción. El Stargate es una estructura que construye unidades de aire, lo que provocó que la Supermente edificara una estructura de defensa antiaérea que se completó antes de que las unidades aéreas llegaran a la base.