4. • Recientemente ha habido un crecimiento
enorme del consumo de videojuegos en el
mundo, debido a su acercamiento a grupos
antes ajenos a ellos: usuarios mayores de 25
años y menores de 10, incluyendo padres,
madres y abuelos, así como el sector femenino.
• Este crecimiento se ha debido al cambio
en la filosofía de los videojuegos, ofreciendo
contenidos más ‘adultos’ o por el
contrario, más asequibles e ‘infantiles’,
así como juegos de acción directa
y breve.
• ¡Hay mercado para vender CIENCIA!
5. • Los jugadores de toda la vida se han autodenominado hardcore gamers.
Éstos disfrutan y exprimen los videojuegos, están informados, les gustan la
mayoría de géneros y juegan largos periodos (si pueden).
• El crecimiento del mercado de los videojuegos ha hecho que aparezcan los
llamados casual gamers.
Son jugadores esporádicos y centrados en juegos de acción directa y breve
(arcade, deportivos, mini-juegos), o de los llamados no-juegos (juegos de
entrenamiento, dibujo, etc).
Otra forma de decir “Virgen hasta los 37”
8. • Y muchos más (consolas de filosofía abierta), poco conocidos por el gran público.
GP2X Wiz
GCW
Zero
GPD Q88+ Pandora
9. • Otra de las repercusiones es que desde hace unos años se están
adaptando los planes de estudios al desarrollo de estas aplicaciones.
• Existen asignaturas, Grados e incluso Másteres dedicados:
– Asignatura “Diseño de Videojuegos”, Universidad de Cádiz
– “Máster en Videojuegos” - Universidad de Málaga
– “Máster en Creación de Videojuegos” – Universitat Pompeu Fabra
– “Máster en Programación de Videojuegos” – U-tad
– “Máster en Desarrollo de Videojuegos” – Universidad Complutense de
Madrid
• Aún así, distamos mucho de Europa y América:
– Ejemplo: Center for Computer Game Research (Copenhague)
11. Su mando (Wiimote) tuvo muchas aplicaciones en el ámbito científico (y
no tan científico):
• control de robots, paneles/monitores reactivos, reconocimiento y
seguimiento de formas y sujetos.
http://www.youtube.com/watch?v=v1AJ_OBJUpY http://www.youtube.com/watch?v=TkmxhVtvLoM http://www.youtube.com/watch?v=0awjPUkBXOU
12. Hay incluso un proyecto, WiiLab, que creó una utilidad en Matlab
para interaccionar con el Wiimote…
…y otra con Game Maker!!!
http://code.google.com/p/giimote/
http://www.youtube.com/watch?v=EeBAYeoX7-8
13. • Inicialmente se utilizó para crear
clusters de consolas (super
computadores), debido a la
potencia de su chip Cell y su
precio no muy elevado.
• Contaba con un S.O. Linux
adicional (Yellow Dog) muy
flexible.
• Posteriormente, la consola fue
actualizada por Sony para no
admitir la instalación de otro
S.O., con lo que se perdió esta
posibilidad.
14. Gracias a su controlador sin mandos Kinect
y Kinect 2:
• control de robots por movimiento y por voz,
reconocimiento de formas y personas, etc.
http://www.kinectfordevelopers.com/es
http://www.youtube.com/watch?v=c6jZjpvIio4
15. Aprovechamiento de la potencia de
cálculo de las GPUs para resolver
problemas complejos de computación.
Ventajas:
• Del orden de 10 a 30 veces más
Gflops que las CPUs coetáneas.
• Precio bajo (para lo que ofrece).
Desventajas:
• Lenguajes propios: CUDA, OpenCL
• Requiere estructuras de datos y de
cómputo específicas.
17. • Los videojuegos, desde siempre, cumplen con reglas de la física,
incluso los más simples (en apariencia) como Super Mario Bros. (saltos,
trayectorias, inercia,…).
18. • En la actualidad se ha conseguido hacerlos (casi) completamente fieles
a la realidad, creando motores específicos para modelado de físicas.
19. • Se consiguen modelos increíbles… aunque aún existen fallos.
https://www.youtube.com/watch?v=wKLaMN9dnjQ
20. • Se han aplicado multitud
de técnicas y métodos
matemáticos para
obtener imágenes
fotorrealistas.
21. • Se han aplicado multitud
de técnicas y métodos
matemáticos para
obtener imágenes
fotorrealistas.
22. • También se han aplicado principios
y avances científicos para
alcanzar las nuevas tecnologías de
visualización e inmersión en
videojuegos.
https://www.youtube.com/watch?v=29xnzxgCx6I
24. • Se llama IA a la rama de la informática dedicada a la
implementación de agentes racionales (o aparentemente
racionales) no vivos.
• Dentro de un videojuego, se trata de definir técnicas de
comportamiento para los personajes no controlables (NPCs
en inglés) que ‘simulen’ ser racionales. Estos personajes podrán
ser enemigos o colaboradores.
• En principio no se trata de obtener comportamiento
estrictamente humano, dado que esto conllevaría la inclusión
‘forzosa’ de errores (los humanos nos equivocamos mucho).
25. • En los inicios de los videojuegos, los NPCs
seguían habitualmente unas pautas o
patrones predefinidos, que el
programador establecía al crear el juego y
que eran invariables.
• Las IAs reactivas proponían acciones de
los NPCs en respuesta a las de los
jugadores.
• Las IAs dedicadas establecían
‘personalidades’ diferentes a los NPCs.
26. • Posteriormente se empezó a utilizar las llamadas máquinas de
estados finitos, las cuales definen una serie de estados posibles para
el NPC y las transiciones entre ellos (basadas en percepciones sobre
el juego o sobre el jugador).
By Fergu
27. • También son bastante utilizados los sistemas de reglas y los árboles
de decisión. En ambos casos se tiene un conjunto de reglas que el
NPC seguirá para actuar en función de las condiciones (entradas o
percepciones) que se den en su entorno.
28. • Otro método muy utilizado son los árboles de comportamiento, que
definen la secuencia de acciones a realizar por un NPC.
29. • También es una alternativa muy utilizada la planificación de acciones
orientadas a objetivos (GOAP). Que consideran precondiciones o
requisitos y prioridades para las acciones y crean planes para
conseguir cada objetivo.
Preconditions: have
axe
Effects: firewood
Preconditions: there
is firewood
Effects: firewood
Preconditions: there
is an axe
Effects: axe
Preconditions:
firewood
Effects: fire
make
fire
make
fire
1
2
3
30. • En la actualidad, lo más habitual es
aplicar una mezcla de estas técnicas.
• A su vez en muchos juegos los NPCs
utilizan variantes de comportamientos
predefinidos (scripts), en función de las
acciones del jugador.
• Su ventaja es que es relativamente
sencillo definirlos, basándose en la
experiencia del programador/jugador en
el juego (o juegos similares).
• Su problema es la poca flexibilidad que
tienen para adaptarse a situaciones
cambiantes.
Script mesh (F.E.A.R. 2)
31. • Además, los NPCs cuentan por lo general con ventajas adicionales al jugador
humano:
puntería perfecta basada en coordenadas exactas.
navigation points :
marcan puntos interesantes o claves del mapa.
señalan rutas de paso prefijadas hacia zonas ventajosas o items.
son invisibles al jugador.
32. • Pero no son perfectas:
• Comercialmente se ha hecho poco uso técnicas ‘más científicas’, como las
redes neuronales, los algoritmos evolutivos,…
By Antares
http://youtu.be/Xr2kwfquWPk
35. • Tradicionalmente, en el entorno científico, se
consideraba la llamada Teoría de Juegos, una rama de
las matemáticas aplicadas en la que se ofrecen
incentivos en base a la toma de decisiones. Dentro de
ella se incluían juegos sencillos en su planteamiento,
pero costosos en su resolución: torres de Hanoi,
dilema del prisionero, juego de la vida.
• Estos juegos planteaban problemas a resolver
mediante técnicas exactas, heurísticas o
metaheurísticas: búsqueda en árboles, A*, algoritmos
genéticos, algoritmos basados en colonias de
hormigas,
• Además, la resolución de juegos tradicionales (típicamente puzles) también
ha sido objeto de estudio desde los inicios de la investigación científica:
ajedrez, backgammon, mastermind, sudoku.
36. • La aparición de los videojuegos propició un nuevo entorno de
problemas.
• El primero y más directo que se propuso resolver fue el de los
aspectos relativos a la IA. Este problema aún es el más relevante.
• Posteriormente, con el avance de la tecnología, los videojuegos se
fueron haciendo cada vez más complejos, con lo que se añadieron
nuevos componentes que era posible investigar:
– Búsqueda en mapas, predicción de combates, simulación, etc
• En la actualidad, las posibilidades son tan grandes, que los temas de
estudio han aumentado exponencialmente y del mismo modo la
investigación científica (y publicaciones).
37. • Rama de la IA que aplica metaheurísticas y mecanismos
bioinspirados para la resolución de problemas complejos,
generalmente modelando sistemas adaptativos o cambiantes.
• Hay que modelar el juego (o una parte del mismo) como un
problema de optimización, búsqueda o aprendizaje.
• Ejemplos:
– Búsqueda de camino mínimo en un mapa
– Predicción de resultado de combates
– Definición automática de reglas de comportamiento
– Ajuste de parámetros de comportamiento
– Decisión de objetivos
38. • Entre las Metaheurísticas más utilizadas están: Algoritmos
Genéticos (AG), Programación Genética (PG), Algoritmos de
Optimización basada en Colonias de Hormigas (OCH), Swarm
Intelligence (SI), Monte-Carlo Tree Search (MCTS), A*,
Lógica Difusa, Redes Neuronales…
• Y suelen aplicarse sobre máquinas de estados finitos (MEF),
scripts, sistemas de reglas (SR) o sistemas expertos (SE), etc.
39. • NPC’s AI:
– Modelar la IA o aspectos de ella para rivales
o compañeros dentro de cualquier juego.
– Intenta crear agentes autónomos en el juego
llamados bots.
– Es la línea de investigación más explotada.
TÉCNICAS HABITUALES:
– Behavioural parameters optimization: se aplican
AGs para evolucionar conjuntos de parámetros
de comportamiento.
– Rule system generation: se trata de definir
automáticamente el conjunto de reglas que
determinen la forma de actuar de los NPCs. Se
suele aplicar PG.
40. • Human-like behaviour (in bots):
– El objetivo es modelar NPCs que sean
capaces de actuar como lo haría un
jugador humano.
– Deben ser (a veces), impredecibles, torpes o
poco precisos, dubitativos, empáticos, etc.
TÉCNICAS HABITUALES:
– Expert-based systems: se hace un modelo del comportamiento de un jugador
experto. Normalmente un conjunto de reglas de actuación en cada situación.
– Knowledge extraction: se graban partidas de jugadores humanos y se usan
métodos de extracción de datos (data mining) sobre esas partidas.
– Interactive algorithms: se definen algoritmos en los que intervienen
controladores humanos, para dirigir los resultados a obtener.
41. • Procedural Content Generation:
– El objetivo es generar de forma automática distintas partes del juego.
– Ventajas:
• Rejugabilidad -> juegos potencialmente infinitos.
• Creatividad -> surgen cosas inesperadas que a un diseñador podrían no ocurrírsele.
• Ahorro -> se automatizan tareas tediosas.
– Desventajas:
• Hay que hacer un muy buen diseño del juego (y sus componentes).
• Requiere intervención humana (al principio) para valorar lo creado y ajustar los
métodos.
Sub-líneas principales:
• Niveles: el escenario o partes de él son generadas (árboles en TES v: Skyrim)
• Armas, Items: éstos se crean de forma automática (Borderlands)
• Historia, Guión: se usan técnicas de creación literaria automática para definir un
trasfondo o eventos en el juego.
42. • Procedural Content Generation:
existen juegos generados completamente de forma automática.
kkrieger (¡¡¡2004!!!) – ¡¡¡¡¡sólo 96KB!!!!!!!!!!!! No man’s sky (2016)
http://www.youtube.com/watch?v=RRpDn5qPp3shttp://www.youtube.com/watch?v=2NBG-sKFaB0
43. • Cheating detection: se aplican técnicas de
detección de ‘trampas’ en partidas, en base a un
estudio de las estadísticas obtenidas por los
jugadores.
• Move and battle prediction: se entrenan
métodos de predicción (como redes neuronales)
en base a datos de partidas grabadas, para que
sean capaces de anticipar futuros movimientos
o acciones de los rivales.
• Learning in games: usando métodos de
aprendizaje por refuerzo (reinforcement
learning), se consiguen agentes adaptativos.
44. • Game mechanics and features analysis: se analizan
los componentes del juego y se parametrizan a fin
de conseguir evaluaciones numéricas de los
elementos que conforman un juego.
• Exploration and search in games: se aplican
algoritmos de búsqueda para encontrar caminos a
objetivos en mapas de juegos, o para explorar
determinadas zonas maximizando el área
cubierta, por ejemplo.
• Serious games: se utilizan los videojuegos como
medio de formación, mejora de aprendizaje, o
para tratar problemas de salud (física o mental),
por ejemplo. No están meramente enfocados en
la diversión, aunque la utilizan para fomentar los
demás objetivos.
48. • Juego de tablero para dos jugadores en
el que uno esconde una combinación
que el otro debe averiguar en base a
pistas.
• Resolverlo es un problema de
optimización combinatoria.
• Cuando el tamaño del juego (número
de colores y longitud) crece, la
dificultad para resolverlo aumenta
exponencialmente y se hace imposible
resolverlo de forma exacta.
49. Unreal es un juego de disparos en primera persona (FPS).
• Muy famoso por la excelente IA de los enemigos (bots), que lo convierten en
un excelente juego multijugador.
• Tiene un editor sencillo con el que se puede cambiar o crear cualquier cosa
en el juego (con el lenguaje UnrealScript).
• Puede usarse la librería de alto nivel Pogamut (para Java) para comunicarse con
el motor del juego.
50. Bot basado en AG
(GA-Bot)
Proceso
Evolutivo
del AG
Std
AI
población
Std
AI
Std
AI
EVALUACIÓN DEL FITNESS
• Analizamos MEF
• Determinamos parámetros
• Optimizamos
51. • Analizamos MEF
• Determinamos parámetros de equipo
• Optimizamos
Equipo de bots
basados en AGs
(GT-Bot)
Proceso
Evolutivo
del AG
población
EVALUACIÓN DEL FITNESS
Std
AI
Std
AI
Std
AI
vs
O
52. • Definimos una MEF de
dos niveles, que modelaba
el comportamiento de un
jugador experto de
campeonatos
Deathmatch 1 vs 1.
• Optimizamos con AGs el
conjunto de parámetros
de los que dependían las
decisiones.
• Bot muy competitivo.
53. • A partir del bot experto, AG
interactivo intervienen
usuarios humanos en la
ejecución del algoritmo:
• Experto en el juego: ajusta aspectos
del bot respecto a su rendimiento en
el juego (comportamiento humano).
• Experto en el algoritmo: ajusta
aspectos del algoritmo para obtener
mejores resultados en el juego (killer
bot).
¡¡¡Segundo puesto en la Human-Like
2KBotPrize Competition 2014!!!
54. • Creado mediante evolución (con AGs) de MEFs:
Nivel de dificultad 3
(5 días de evolución)
http://www.youtube.com/watch?v=qQVQ43sWwYY
55. • IA de equipo de fantasmas basada en swarm intelligence (flocking
strategies comportamiento de las aves).
• Parámetros optimizados con un AG.
• Mejora a la mayoría de
controladores existentes.
Vs StarterPacMan
https://www.youtube.com/watch?v=I9rL0jUwHhk
56. • Implementado en el RTS Planet Wars (basado en juego Galcon).
• Google AI Challenge 2010.
• Optimización de parámetros con AG:
– Bot optimizado
– Bot especializado
57. • Generación automática de reglas (árboles de decisión) mediante PG:
– Bot generado
– Survival Bot
58. • Creación de Bots de forma automática
generando código PG.
• Estrategias de alto nivel
(planificación).
• Bots muy competitivos,
mejores que jugadores
humanos.
59. • Creación de mazos óptimos con AG.
• Simulador MetaStone.
• Mazo del Mago 71% de victorias
• Mazo del Guerrero 65% de victorias
60. • TORCS:
– Controlador que aplica Lógica difusa.
– Se mejoran con Algoritmos Evolutivos.
• Conductor que se comporta como un
humano.
• Mejora mucho a los conductores del juego.
61. • Massive Artificial Drama Engine:
– Sistema de generación de tramas masivas
para personajes secundarios en juegos.
– Cada NPC tendrá una historia personal
que le sirva para situarse en el juego y que
justifique sus actos.
• Dentro de la PCG.
• Es un sistema multiagente optimizado
mediante AEs.
• Se busca el interés del jugador que
definirá los arquetipos a generar por el
sistema (héroes, vengadores, mentores,
villanos, personas en apuros).
http://made.velonuboso.com
@made_project
63. La investigación en videojuegos (comerciales)
requiere que se desarrolle o se ofrezca algún medio
de interacción (automática) con los mismos.
• Editores: los ofrecen los creadores de los juegos
para que los usuarios implementen
modificaciones a los juegos (MODS).
• Frameworks: entornos diseñados para la
completa interacción con un videojuego.
• Librerías: utilidades externas que se conectan
con el juego y permiten interactuar con él.
64. Los editores permiten cambiar elementos del
juego e incluso diseñar e implementar nuevos
elementos que se añadirán al mismo, que
pueden ir desde una simple nueva apariencia
para un personaje, hasta la creación de un
nuevo tipo de juego dentro de otro.
Son los llamados MODS.
Estas modificaciones podrán incluir rediseños
también de la parte de inteligencia artificial,
incluyendo algoritmos de mejora automática de
la misma.
Ejemplo: UnrealEditor.
65. Son entornos creados exclusivamente para la
interacción automática con un videojuego,
por lo que, muchas veces, se diseñan
incluyéndolo al mismo.
Suelen ser versiones simplificadas y abiertas
de juegos comerciales, o juegos creados sólo
con el objetivo de implementar de forma
directa nuevas funcionalidades para el
mismo, normalmente la IA del jugador o los
enemigos.
Ejemplos: TORCS o Mario AI Benchmark.
66. Se crean para la interacción automática
externa con un juego.
Suelen implementar un mecanismo de
comunicación o ‘inyección de código’ sobre
el juego.
Normalmente ofrecen funciones de alto
nivel y menos control sobre los elementos
del juego que las otras alternativas.
Ejemplos: Pogamut o BWAPI.
67. • 2K BotPrize: bots de Unreal que deben ser lo más humanos posible.
• Starcraft: combates en el famoso RTS.
• Planet Wars: RTS de lucha interplanetaria simple. Google AI Challenge 2010.
• ANTS: RTS de pelea entre hormigas. Google AI Challenge 2011.
• Pac-Man: Famoso comecocos. Puedes implementar a Pac-man o a los fantasmas.
• General Video Game Playing: hay que crear un agente que pueda aprender a
jugar varios videojuegos clásicos de forma autónoma.
• Simulated Car Racing: Carreras de coches.
• Platformer AI: Generación de niveles y test de Turing en un plaformas a lo
Super Mario Bros.
• Fighting Game Competition: combates de lucha 1 vs 1 (al estilo Street Fighter).
• AI Birds: se deben crear agentes que jueguen a Angry Birds.
• Physical TSP: nave que debe recoger una serie de objetos (pasando por ciertos
puntos) en un circuito con obstáculos y trampas.
68. Dr. ANTONIO M. MORA GARCÍA
DEPTO. TEORÍA DE LA SEÑAL, TELEMÁTICA Y
COMUNICACIONES
amorag@ugr.es
Somos @amoragar
@jjmerelo
@fergunet
@antaress
http://geneura.ugr.es
¡Muchas gracias a TOD@S!
*** Todo nuestro software es libre ***