Ciencia y Videojuegos (v2)

50
PLAYER 1 – ANTONIO M. MORA GARCÍA CIENCIA Y VIDEOJUEGOS CIENCIA Y VIDEOJUEGOS © Granada Gaming Festival 2014 - Press START -

Transcript of Ciencia y Videojuegos (v2)

PLAYER 1 – ANTONIO M. MORA GARCÍA

CIENCIA Y VIDEOJUEGOS

CIENCIA Y VIDEOJUEGOS

© Granada Gaming Festival 2014

- Press START -

• Introducción crecimiento del mercado de videojuegos, taxonomía de jugadores, sistemas de juego actuales. Videojuegos en la Universidad. • Aplicaciones de los videojuegos a la ciencia uso de sistemas de videojuegos en campos de la ciencia.

• Ciencia en los videojuegos consideraciones científicas en el mundo de los videojuegos. • Investigación en videojuegos principales campos de investigación dentro del ámbito de los videojuegos. • Ejemplos

INTRODUCCIÓN INTRODUCCIÓN

• 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!

• 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”

• Sobremesa

• Portátiles

Wii U Xbox One Playstation 4 PC

Nintendo 3DS Playstation Vita Smartphones/Tablets

• Y muchos más (consolas de filosofía abierta), poco conocidos por el gran público.

GP2X Wiz GCW Zero

GPD Q88+ Pandora

• 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)

• 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)

APLICACIONES A LA CIENCIA

APLICACIONES A LA CIENCIA

Su novedoso mando (Wiimote) ha tenido 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

Hay incluso un proyecto, WiiLab, que ha creado 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

• 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.

Gracias a su controlador sin mandos Kinect:

• control de robots por movimiento y por voz, reconocimiento de formas y personas, etc.

http://www.youtube.com/watch?v=Sw4RvwhQ73E http://www.youtube.com/watch?v=c6jZjpvIio4

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.

CIENCIA EN LOS VIDEOJUEGOS

CIENCIA EN LOS VIDEOJUEGOS

• 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,…).

• En la actualidad se ha conseguido hacerlos (casi) completamente fieles a la realidad, creando motores específicos para modelado de físicas.

http://www.youtube.com/watch?v=B7_rPDwSKe8

INVESTIGACIÓN EN VIDEOJUEGOS

INVESTIGACIÓN EN VIDEOJUEGOS

• Aparte del realismo visual y físico, se quiere modelar enemigos y compañeros cuyo comportamiento sea ‘inteligente’ (humano).

• Es decir, los recursos se están invirtiendo en la IA.

• 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 manejables (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).

• 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.

• 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

• También son bastante utilizados los sistemas de reglas y los árboles de decisión. En ambos casos se tienen 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.

• En la actualidad, lo más habitual es aplicar una mezcla de estas técnicas. Así en la gran mayoría de 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.

• 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

• 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

• 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.

• 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).

• 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

• Entre las Metaheurísticas más utilizadas están: Algoritmos Genéticos (AG), Algoritmos de Optimización basada en Colonias de Hormigas (OCH), Monte-Carlo Tree Search (MCTS), A*, Programación Genética (PG), 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.

• 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.

• 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.

– Inretactive algorithms: se definen algoritmos en los que intervienen controladores humanos, para dirigir los resultados a obtener.

• 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.

• Procedural Content Generation: existen juegos generados completamente de forma automática. kkrieger (¡¡¡2004!!!) – ¡¡¡¡¡sólo 96KB!!!!!!!!!!!! No man’s sky (2014)

http://www.youtube.com/watch?v=RRpDn5qPp3s http://www.youtube.com/watch?v=2NBG-sKFaB0

• 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.

• 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.

EJEMPLOS EJEMPLOS

i población inicial f función de evaluación ? condición de parada Se selección Cr cruce Mu mutación Re reemplazo

by Johann Dréo

http://www.youtube.com/watch?v=ejxfTy4lI6I

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.

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

• 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

• 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.

• A partir del bot experto, 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!!!

• Creado mediante evolución (con AEs) de MEFs:

Nivel de dificultad 3 (5 días de evolución)

http://www.youtube.com/watch?v=qQVQ43sWwYY

• 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

• 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 a lo Street Fighter. • AI Birds: se deben crear agentes que jueguen a Angry Birds.

• Congresos: – IEEE CIG (2012 en Granada) – CGAMES – GAME-ON – CGAT – Special Sessions: IWANN, MAEB, EVO*, GECCO, WCCI

• Revistas: – Transactions on Computational

Intelligence and AI in Games (IEEE) – Entertainment Computing (Springer)

Encuentra la presentación en slideshare:

Slidemora/ciencia-y-videojuegos-v2

Todo nuestro software es libre y está disponible.

Yo soy @amoragar

¡Muchas gracias a

@fergunet y @antaress!