La Guerra FrI.A. · 2018. 1. 2. · 1 Ideas y mecánicas Estrategia por turnos 1vs1vs1 (ALIENS vs...

Post on 05-Oct-2020

4 views 0 download

Transcript of La Guerra FrI.A. · 2018. 1. 2. · 1 Ideas y mecánicas Estrategia por turnos 1vs1vs1 (ALIENS vs...

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