La Guerra FrI.A.ALIENS vs USA vs URSS
Grupo 6: En la granja de pepito I.A. I.A. o
Andoni PinillAIRaúl CuadrAIdoCarlos RAIzoDiego MacIAJosé MarIA PizanaNéstor L. ZapatIA
Índice1. Ideas y mecánicas
2. Editor de juego3. IA: Idea general.4. Capa High Level AI
4.1. Decision Tree4.2. Creación de unidades.
5. Capa Terrain Analysis6. Capa Allocation
6.1. Matrices de convolución6.2. Configuración del grid6.3. Pathfinding
6. Rendimiento 7. Logros y limitaciones
1 Ideas y mecánicas
✘ Estrategia por turnos 1vs1vs1 (ALIENS vs USA vs URSS)
✘ Mapa hexagonal prefijado formando un triángulo:✗ Cada facción en una esquina.✗ Luna en el centro del triángulo.✗ Terreno difícil: Asteroides.✗ Ciudades repartidas por el mapa.
✘ Objetivo: Controlar la Luna el mayor tiempo posible.
1 Ideas y mecánicas
✘ Recursos: energía y materiales
✘ Ciudades:✗ Minas. Proporcionan materiales.✗ Satélites. Proporcionan energía.✗ Luna. Proporciona materiales y energía.
✘ Naves:✗ Infantería (counter de Antitanque)✗ Tanque (counter de Infantería)✗ Antitanque (counter de Tanque)
2 Editor de juego
✘ Tool para el cambio rápido del diseño de mapa sin arrastrar de carpetas.
✘ Todo sucede en edición, no hace falta darle a play.
✘ Guardado y cargado de layouts en ficheros.
Artículo: Strategies for Strategy Game AI (Lane, 1999)
3 IA: Idea General
2º Terrain Analysis
3º Allocation
1º High Level AI
-Relacionar recursos (unidades, …) con objetivos (goals).
-Encontrar enemigos y clasificar objetivos por importancia (dependiendo de AIP).-Target-goals.-Ranked by priority.
-Cambiar prioridades y modo AIP.-Examina factores de gran escala (comparar nuestras fuerzas con las del enemigo).-Decision Making (decision tree).-Output: switch AIP.
Strategic AI
4 Capa High Level AI
-Input: factores de gran escala (ratio fuerzas amigas-enemigas, triggers específicos, amenaza general).
-Proceso: Decision Making. Árbol de dicisiones.
-Output: switch AIP (prioridades generales).
✘ AIP: Lista de prioridades generales con pesos. Ejemplo: Conquistar Luna(1), Atacar ALIENS(2), Conquistar Minas(3).
✘ Se estudia el estado del mapa.✗ Número de unidades de cada tipo de cada Facción.✗ Número de ciudades de cada Facción.
✘ A partir del estudio se modifican las prioridades. (Árbol de decisiones).
4 Capa High Level AIÁrbol de decisiones
Raíz
Conquistar Luna
NOConquistar
Luna
Escoger facción objetivo
Defender Ciudades
Atacar unidades de facción
Conquistar ciudades
Si todos los parámetros sonaproximadamente similares o somos superiores y aún no hemos conquistado la Luna.
Si no.
Si estoy por encima de otras facciones y he conquistado la Luna.
No he conquistado la Luna y alguna facción destaca.
Una facción destaca por tener más unidades
Una facción destaca por tener más ciudades
4 3 2
0 2 2
3 1 3
✘ Spawnear unidades que necesita la facción dependiendo de las prioridades:✗ Si quieres atacar a una facción, crear unidades counter.
4 Capa High Level AICreación de unidades
USA
Aliens
URS
5 Capa Terrain Analysis
✘ Dependiendo de las prioridades se definen celdas objetivo con pesos. Ejemplo:✗ Prioridad: Conquistar Minas.✗ Output: Celdas de las Minas con el peso de la
prioridad.
-Input: Prioridades (con pesos) de la AIP.
-Proceso: Determinar objetivos geográficos a partir de las prioridades.
-Output: objetivos geográficamente definidos con prioridades.
6 Capa Allocation
✘ Relacionar las unidades disponibles con los objetivos. Dependiendo de:✗ Tipo de unidad.✗ Distancia al objetivo.✗ Matrices de convolución.
✘ Órdenes de movimiento y ataque a las unidades.
-Input: objetivos geográficamente definidos con prioridades.
-Proceso: relacionar recursos (unidades) con objetivos.
-Output: órdenes a las unidades.
6 Capa AllocationPathfinding
✘ Adaptar pathfinding a un mapa hexagonal.
La Ocultasió La Guerra FrI.A.
6 Capa AllocationConfiguración del grid
Para cada celda objetivo
Multiplicador de peso *=0.8
Para cada enemigo
Le puedo vencer?
ADEMÁS
Peso*=0.95 Peso*=1.2
SI NO
DESPUÉS
AQUÍ LA MATRIZ YA ESTÁ CONFIGURADA
Convolucionamos el grid con una matriz de smoothing
6 Capa AllocationMatrices de convolución
6
3
5
3
24
1
1
1
3
1
11
1
4,5
3,66
3,77
3,33
2,833,5
3
x
Donde Mi = celdas de M que intervienen en la evaluación
HexoMatriz de
convolución M
Estado inicial de las celdas
Estado final de las celdas
7 Rendimiento IA
✘ Cálculo rápido de camino óptimo mediante el uso de una variación de A*
✘ Toma de decisiones en poco tiempo gracias a la implementación de un decision tree.
✘ Allocation se ha dividido de manera secuencial por objetivos del turno.
8 Logros
✘ Diseño de una IA con varias capas que estudia el terreno de una forma adecuada.
✘ Capacidad de la IA de decidir la estrategia que más le conviene (decision tree).
✘ Creación de unidades inteligente.✘ Pathfinding con convolución de celdas hexagonales.
9 Limitaciones
✘ Capa Allocation se podría hacer de una forma mucho más eficiente en mapas más grandes.
✘ Convolución cara y difícilmente escalable.
✘ Se podría haber mejorado las llamadas a las unidades con una cola.
Demo
GracI.A.s