A medida que los sistemas se tornan más complejos, nos será necesario distribuir el comportamiento y categorizarlo de forma que podamos gestionar de forma independiente cada uno de ellos.

Será necesario distribuir de algún modo la forma en la que se abordan los diferentes problemas que van surgiendo. En el caso de un juego de estrategia, puede ser necesario llevar una estrategia a varios niveles, por ejemplo en un nivel superior se pretenderá planificar un desarrollo típico (minar recursos, construir un ejército y atacar) y a un nivel más bajo puede pretenderse explorar el mapa o crear estrategias inferiores de mejoras de edificios y unidades.

Para esto utilizaremos estructuras que permitan distribuir y definir los diferentes factores y estrategias. Una solución factible es el uso de comandantes es decir la utilización de una distribución jerárquica.

> Comandantes y subcomandantes en inteligencia artificial.

Del mismo modo en el que se distribuirian las tareas en cualquier sistema jerárquico, al aplicar este concepto en IA tenemos que distribuir objetivos por un lado y abstracción por otro. Conforme bajamos en la escala jerárquica tendremos una distribución de objetivos más cercana a bajos niveles de abstracción (encontrar minas, proteger perímetro, etc) y conforme subimos en la escala serán menos precisos y abstractos (obtener solvencia económica, forjar ejército etc.)

Comandante

Un comandante tendrá una serie de elementos a su cargo y será el indicado de distribuir sus recursos a los subcomandantes. Por otro lado, los subcomandantes serán los encargados de pedir recursos a su superior y de administrar los que tienen para llegar al objetivo concreto.

El comandante puede crear, substituir y relevar subcomandantes conforme a la estrategia de juego. En un momento determinado un subcomandante puede ser necesario para, por ejemplo escrutar el terreno con la finalidad de obtener la posición de las minas. Una vez conseguido este objetivo, los recursos pueden ser liberados tanto los vinculados al juego como los vinculados a memoria interna.

Un posible escenario es el de un comandante que tiene por objetivos atacar al oponente. Inicia la actividad con tres subcomandantes: un administrador de recursos, un scout, un constructor y un subcomandante de guerra. Para ello en las primeras fases del juego suministrará mayores recursos al administrador de recursos y una vez se cumplan los requisitos variará su estrategia. De este modo al inicio el subcomandante bélico no tendrá demasiada relevancia y en los momentos más avanzados del juego cobrará mayor responsabilidad.

> Distribución de subcomandantes apropiada en un juego de estrategia.

Aunque hay una infinidad de propuestas posibles que pueden resultar perfectamente válidas, los más probable es que de una u otra forma las responsabilidades que se distribuyen en esta taxonomía de comandantes figuren completamente o en su gran mayoría.

Encontraremos por tanto varios tipos de subcomandantes, entre ellos los que se comentan a continuación:

- Subcomandante recolector. Se encargará de minar minerales utilizando trabajadores. Hará los cálculos pertinentes para definir el número y la distribución óptima de los trabajadores entre los diferentes centros y puntos de obtención de recursos.

Sus órdenes pueden varias en función de la estrategia general de sus superiores en este caso el del General.

The Daimyo Ladies Procession

- Subcomandante constructor. Se encarga de distribuir los diferentes edificios necesarios en cada momento del juego. Actualiza las construcciones en función de si son eliminadas, sufren daños o si hay excedente de materiales necesarios.

Subcomandante Ingeniero

- Subcomandante de inteligencia. Se encarga de descubrir información acerca del entorno y del enemigo. Tendrá asignados una serie de recursos que harán que sea más o menos presente en el desarrollo. En un primer lugar puede tomar estrategias de eliminación de la niebla del entorno y una vez alcanzados estos objetivos puede distribuir sus scouts para patrullar determinadas áreas susceptibles y dar el aviso al General en caso de que tropas enemigas penetren en el perímetro.

Comandante de Exploracion

- Subcomandante de defensa. Establece regiones con diferentes grados de seguridad y se encarga de defender y fortificar las bases en función de la estrategia que se le haya definido. Puede acceder a la información general obteniendo datos de esto de las areas. Distribuye las unidades de forma que sean efectivas para la defensa y actua en consecuencia cuando se detecta un ataque. Será encargado de establecer edificios y unidades defensivas.

Defense Commander

- Subcomandante de ataque. Crea el ejército y engloba la estrategia de ataque y las tácticas de combate. Buscará puntos donde emboscar y acechará unidades. Distribuirá las unidades propias de forma que sean lo más efectivas posibles.

Subcomandante de Ataque

- Subcomandante de científico. Pone en marcha las estrategias de evolución de unidades militares y civiles así como la mejora de los edificios o la consecución de tecnologías. Será el encargado de aumentar las capacidades de los elementos de la civilización.

Subcomandante Científico

> Ejemplos de enfoque estratégico.

Utilizando estos mecanismos, nos podemos encontrar en la necesidad de generar estrategias diferentes para conseguir nuestros objetivos. Vemos tres enfoques diferentes de lo que podian ser los planes a ejecutar durante el desarrollo de un juego.

—> Juego o escenario primero (reunión de recursos). El ‘Comandante General’ instancia un ‘Subcomandante Recolector’ y le pasa todas las unidades disponibles. Recursos y capacidad de producción totalmente para el recolector.

­—> Segundo escenario. El General genera escuadrones y agrupaciones diferentes. Estos escuadrones son asignados al ‘Subcomandante de Ataque’ y son distribuidos para empezar a atacar.

El General se encarga básicamente de distribuir los recursos entre las diferentes bases en función del grado de necesidad previsto para cada una de ellas. Se puede basar en el análisis del terreno para detectar areas ‘calientes’ o con un mayor valor estratégico. Es posible delegar parte del trabajo a los subcomandantes para que hagan un preproceso de sus necesidades en función del terreno, de este modo la asignación de recursos por parte del General se hará en base a las diferentes peticiones de los Subcomandantes o la las distribuciones propuestas por el o ellos mismos segun sea el caso.

—> Juego tercero. El General gestiona un grupo de bases de forma independiente acorde a la estrategia general de:

1) Generar un nivel de producción aceptable.
2) Construir un cuartel
3) Producir simultaneamente trabajadores y guerreros mientras sea posible.
4) Si hay al menos dos bases que reciben recursos construir una factoria.
5) Producir marines y tanques a la mayor velocidad posible.

Estos son solo algunos de los ejemplos que nos podemos encontrar. Un juego actual está formado por un gran conjunto de reglas de este estilo que son distribuidas de forma más o menos eficiente entre las estructuras internas del programa.

Este es uno de los elementos que incluye totalmente funcionales el juego de estrategia open source ORTS que ya se ha tratado en artículos anteriores. Los más interesados podeis estudiar la IA de este sistema a fondo sabiendo que una de las bases es la gestión mediante el uso de comandantes.

Las clases están completadas y podeis encontrar todos los tipos de comandantes anteriormente comentados y puestas en escena de las diferentes estrategias de juego.

En definitiva, hemos visto que el uso de comandantes en sistemas de IA permite organizar y dividir las necesidades de estrategia y de distribución de la lógica de nuestro sistema de una forma intuitiva y abordable. Conforme la dificultad o la precisión crecen se pueden incluir mayores rangos para los diferentes gestores, es decir, mayor precisión en las responsabilidades.

Hasta la próxima.