ciencia y videojuegos (versión extracción de información) [uca 05/2015]

Post on 17-Jul-2015

780 Views

Category:

Science

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PLAYER 1 – ANTONIO M. MORA GARCÍA

PLAYER 2 – PABLO GARCÍA SÁNCHEZ

CIENCIA Y VIDEOJUEGOS

CIENCIA Y VIDEOJUEGOS

© Universidad de Cádiz 2015

- Press START -

RECUPERACIÓN DE

INFORMACIÓN

EDITION

• 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. • Interacción con videojuegos

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.

INTERACCIÓN CON JUEGOS

INTERACCIÓN CON JUEGOS

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.

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.

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.

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.

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

Las herramientas de interacción comentadas permiten la extracción de información de los juegos. Ésta es muy necesaria cuando se trata de mejorar algún aspecto de los mismos de forma automática, en concreto:

• Editores: dan acceso a todos los datos del juego, siempre que sean accesibles desde otros objetos y siempre que el programador del juego haya considerado que dichos datos puedan ser conocidos por otros jugadores (para evitar tener ventajas o hacer trampas).

• Frameworks: permiten acceder a un conjunto controlado de información (la que se pretende que los programadores utilicen).

• Librerías: permiten acceder a un conjunto intermedio de datos. En concreto ofrecen funciones de alto nivel que acceden al conjunto global de datos.

A la hora de diseñar algoritmos de creación o mejora de elementos de juegos (aprendizaje o generación de contenidos) automática, es necesario recopilar cierta información. • Información on-line: información accesible durante el desarrollo del juego

(estado del mapa, situación de items, posición o detección de enemigos, etc). • Información final: resultados obtenidos al finalizar la partida.

Sirve principalmente para ajustarse al desarrollo de la partida (IA dinámica) o para valorar el funcionamiento de lo que se ha implementado (evaluación).

Todo nuestro software es libre y está

disponible.

Yo soy @amoragar

¡Muchas gracias a

@fergunet y @antaress!

top related