Una IA que aprende a jugar!!
#13
Cita
Perdonad, no he tenido conexión durante el finde. :_(

En primer lugar os invito a┬á consultarme lo que queráis, por privado (Earthbound) o a través de este post, por ejemplo, para no floodear mucho, jeje.
Aunque no sé si estaré a la altura. Tongue

En Unreal hemos trabajado desde el primero (fue mi proyecto fin de carrera en 2001) hasta Unreal Tournament 2004.
Para ello, interaccionamos con los primeros Unreal Engines y luego con Pogamut, una especie de librería de comunicación 'externa' y bastante sencilla (de muy alto nivel).

Respecto a la IA del RTS que planteabais, la verdad es que habría que ver en primer lugar las posibilidades que tiene el juego, es decir, qué tipos de unidades hay y qué pueden hacer.
Una IA en ese tipo de juego consta de muchas partes, como bien sabréis: búsqueda de rutas, decisión de objetivos, tácticas de ataque o defensa, etc, etc.

Según mi experiencia, las IAs actuales juegan con una mezcla entre algoritmos 'clásicos', como puede ser el A* o el Monte Carlo Tree Search, con conjuntos de reglas predefinidos según la experiencia de los programadores/jugadores y con patrones 'scriptados', es decir, guionizados (los rivales siempre hacen lo mismo cuando se dan determinadas circunstancias).
Estos últimos, junto con los 'puntos de navegación' (caminos predefinidos dentro de los mapas), componen la base principal de las IAs en FPSs.

Otra buena alternativa son las maquinas de estados finitos, que definen un conjunto de estados posibles para un agente/bot/jugador y considerando las percepciones de dicho agente en un momento determinado, pasan a otro estado.
Un ejemplo sencillo serian tres estados: "buscando", "ataque", "defensa". En el primero el bot se movería buscando items o rivales por el mapa, si apareciese un enemigo por ejemplo, determinaría si pasa a "ataque" o a "defensa" en base a su estado y el del rival. En el estado "ataque" el bot perseguiría al rival disparándole con el arma más poderosa, por ejemplo. En el estado "defensa" el bot huiría moviéndose en zig zag y saltando en la dirección contraria al enemigo.

Nuestra investigación se basa sobre todo en la creación de IAs evolutivas, es decir, son capaces de adaptarse con el paso del tiempo, comenzando desde una serie de reglas (o estados) sencillas y componiendo reglas (o estados) más complejas. En este tipo de evolución se suelen usar algoritmos de computación evolutiva, como algoritmos genéticos (para mejorar conjuntos de parámetros de los que depende el motor de comportamiento de un bot, por ejemplo), o programación genética (que puede generar sistemas de reglas por sí mismos).

Siento el rollo que os he metido, pero me encanta el tema, jeje.

Saludos.


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)