Diferencia entre revisiones de «Inteligencia artificial para videojuegos»
Sin resumen de edición |
m Cambiado el indice de Talleres y de prácticas |
||
Línea 37: | Línea 37: | ||
Es importante que, a la hora de crear o editar lecciones, tengas en cuenta los siguientes consejos: |
Es importante que, a la hora de crear o editar lecciones, tengas en cuenta los siguientes consejos: |
||
* [[{{PAGENAME}}/Consejos para redactar lecciones|Consejos para redactar lecciones]] |
* [[{{PAGENAME}}/Consejos para redactar lecciones|Consejos para redactar lecciones]] |
||
==== Bloque 1: Introducción a la Inteligencia Artificial ==== |
==== Bloque 1: Introducción a la Inteligencia Artificial ==== |
||
Línea 44: | Línea 44: | ||
Lecciones: |
Lecciones: |
||
# [[{{PAGENAME}}/Fundamentos de la Inteligencia Artificial|Fundamentos de la Inteligencia Artificial]] |
# [[{{PAGENAME}}/Fundamentos de la Inteligencia Artificial|Fundamentos de la Inteligencia Artificial]] |
||
# [[{{PAGENAME}}/Historia de la Inteligencia Artificial para videojuegos|Historia de la Inteligencia Artificial para Videojuegos]] |
# [[{{PAGENAME}}/Historia de la Inteligencia Artificial para videojuegos|Historia de la Inteligencia Artificial para Videojuegos]] |
||
En este bloque se sugiere continuar investigando en tipos de inteligencia distintas de la humana (más como una herramienta expresiva), aplicaciones habituales de la IA en videojuegos (distinguiendo según géneros y tecnologías disponibles). No se profundiza sin embargo en aplicaciones que estén alejadas del ámbito del videojuego. |
En este bloque se sugiere continuar investigando en tipos de inteligencia distintas de la humana (más como una herramienta expresiva), aplicaciones habituales de la IA en videojuegos (distinguiendo según géneros y tecnologías disponibles). No se profundiza sin embargo en aplicaciones que estén alejadas del ámbito del videojuego. |
||
Línea 54: | Línea 54: | ||
Lecciones: |
Lecciones: |
||
# [[{{PAGENAME}}/Modelos racionales de resolución|Modelos racionales de resolución]] |
# [[{{PAGENAME}}/Modelos racionales de resolución|Modelos racionales de resolución]] |
||
# [[{{PAGENAME}}/Búsqueda en el espacio de estados|Búsqueda en el espacio de estados]] |
# [[{{PAGENAME}}/Búsqueda en el espacio de estados|Búsqueda en el espacio de estados]] |
||
# [[{{PAGENAME}}/Estrategias de búsqueda no informada|Estrategias de búsqueda no informada]] |
# [[{{PAGENAME}}/Estrategias de búsqueda no informada|Estrategias de búsqueda no informada]] |
||
# [[{{PAGENAME}}/Estrategias de búsqueda informada|Estrategias de búsqueda informada]] |
# [[{{PAGENAME}}/Estrategias de búsqueda informada|Estrategias de búsqueda informada]] |
||
# [[{{PAGENAME}}/Búsqueda con adversarios|Búsqueda con adversarios]] |
# [[{{PAGENAME}}/Búsqueda con adversarios|Búsqueda con adversarios]] |
||
# [[{{PAGENAME}}/Planificación automática|Planificación automática]] |
# [[{{PAGENAME}}/Planificación automática|Planificación automática]] |
||
En este bloque se sugiere continuar investigando en otros paradigmas de la IA, uso de librerías que ofrecen diversas estrategias de búsqueda, variantes aún más específicas de los algoritmos. No podremos sin embargo profundizar en los problemas de satisfacción de restricciones, muy útiles en Logística, pero que no abordaremos al no ser tan relevante en videojuegos. |
En este bloque se sugiere continuar investigando en otros paradigmas de la IA, uso de librerías que ofrecen diversas estrategias de búsqueda, variantes aún más específicas de los algoritmos. No podremos sin embargo profundizar en los problemas de satisfacción de restricciones, muy útiles en Logística, pero que no abordaremos al no ser tan relevante en videojuegos. |
||
Línea 68: | Línea 68: | ||
Lecciones: |
Lecciones: |
||
# [[{{PAGENAME}}/Representación del conocimiento|Representación del conocimiento]] |
# [[{{PAGENAME}}/Representación del conocimiento|Representación del conocimiento]] |
||
# [[{{PAGENAME}}/Representación lógica|Representación en lógica de primer orden]] |
# [[{{PAGENAME}}/Representación lógica|Representación en lógica de primer orden]] |
||
# [[{{PAGENAME}}/Razonamiento lógico|Razonamiento en lógica de primer orden]] |
# [[{{PAGENAME}}/Razonamiento lógico|Razonamiento en lógica de primer orden]] |
||
# [[{{PAGENAME}}/Conocimiento incierto|Conocimiento incierto]] |
# [[{{PAGENAME}}/Conocimiento incierto|Conocimiento incierto]] |
||
# [[{{PAGENAME}}/Razonamiento probabilista|Razonamiento probabilista]] |
# [[{{PAGENAME}}/Razonamiento probabilista|Razonamiento probabilista]] |
||
# [[{{PAGENAME}}/Teoría de la decisión|Teoría de la decisión]] |
# [[{{PAGENAME}}/Teoría de la decisión|Teoría de la decisión]] |
||
En este bloque se sugerirá continuar investigando en: razonadores que pueden conectar externamente o ir integrados con un videojuego, herramientas y lenguajes para definir comportamiento mediante reglas u otras técnicas, e incluso ontologías. Aunque es un tema de suma importancia, no abordaremos en ningún bloque el campo del Aprendizaje automático porque queda pendiente para ser tratado en otras asignaturas y sus correspondientes proyectos de aprendizaje. |
En este bloque se sugerirá continuar investigando en: razonadores que pueden conectar externamente o ir integrados con un videojuego, herramientas y lenguajes para definir comportamiento mediante reglas u otras técnicas, e incluso ontologías. Aunque es un tema de suma importancia, no abordaremos en ningún bloque el campo del Aprendizaje automático porque queda pendiente para ser tratado en otras asignaturas y sus correspondientes proyectos de aprendizaje. |
||
Línea 82: | Línea 82: | ||
Lecciones: |
Lecciones: |
||
# [[{{PAGENAME}}/Sistemas multi-agente|Sistemas multi-agente]] |
# [[{{PAGENAME}}/Sistemas multi-agente|Sistemas multi-agente]] |
||
# [[{{PAGENAME}}/Percepción|Percepción]] |
# [[{{PAGENAME}}/Percepción|Percepción]] |
||
# [[{{PAGENAME}}/Movimiento|Movimiento]] |
# [[{{PAGENAME}}/Movimiento|Movimiento]] |
||
# [[{{PAGENAME}}/Planificación de rutas|Planificación de rutas]] |
# [[{{PAGENAME}}/Planificación de rutas|Planificación de rutas]] |
||
# [[{{PAGENAME}}/Toma de decisiones|Toma de decisiones]] |
# [[{{PAGENAME}}/Toma de decisiones|Toma de decisiones]] |
||
# [[{{PAGENAME}}/Tácticas y estrategias|Tácticas y estrategias]] |
# [[{{PAGENAME}}/Tácticas y estrategias|Tácticas y estrategias]] |
||
# [[{{PAGENAME}}/Herramientas de autoría|Herramientas de autoría]] |
# [[{{PAGENAME}}/Herramientas de autoría|Herramientas de autoría]] |
||
En este bloque se sugerirá continuar investigando en Inteligencia Artificial distribuida y sistemas multiagente, en Procesamiento de Lenguaje Natural y modelos probabilísticos para realizar algunas de estas funciones. |
En este bloque se sugerirá continuar investigando en Inteligencia Artificial distribuida y sistemas multiagente, en Procesamiento de Lenguaje Natural y modelos probabilísticos para realizar algunas de estas funciones. |
||
Línea 99: | Línea 99: | ||
Lecciones: |
Lecciones: |
||
# [[{{PAGENAME}}/Creatividad computacional|Creatividad computacional]] |
# [[{{PAGENAME}}/Creatividad computacional|Creatividad computacional]] |
||
# [[{{PAGENAME}}/Generación procedimental de contenido|Generación procedimental de contenido]] |
# [[{{PAGENAME}}/Generación procedimental de contenido|Generación procedimental de contenido]] |
||
# [[{{PAGENAME}}/Evaluación automática del juego|Evaluación automática del juego]] |
# [[{{PAGENAME}}/Evaluación automática del juego|Evaluación automática del juego]] |
||
En este bloque se sugerirá continuar investigando en modelado del jugador, adaptación dinámica del juego y evaluación de la experiencia. |
En este bloque se sugerirá continuar investigando en modelado del jugador, adaptación dinámica del juego y evaluación de la experiencia. |
||
Línea 124: | Línea 124: | ||
# [[{{PAGENAME}}/Resolviendo puzles|Resolviendo puzles]] |
# [[{{PAGENAME}}/Resolviendo puzles|Resolviendo puzles]] |
||
# [[{{PAGENAME}}/Moviendose por el tablero|Moviendose por el tablero]] |
# [[{{PAGENAME}}/Moviendose por el tablero|Moviendose por el tablero]] |
||
#[[Exploradores y Vigilantes]] |
|||
# ... |
|||
# [[{{PAGENAME}}/Decisiones de supervivencia|Decisiones de Supervivencia]] |
# [[{{PAGENAME}}/Decisiones de supervivencia|Decisiones de Supervivencia]] |
||
# [[{{PAGENAME}}/Aliados y enemigos en combate|Aliados y enemigos en combate]] |
# [[{{PAGENAME}}/Aliados y enemigos en combate|Aliados y enemigos en combate]] |
||
Línea 133: | Línea 133: | ||
Estas prácticas son casos que han realizado los alumnos a lo largo de este proyecto de aprendizaje: |
Estas prácticas son casos que han realizado los alumnos a lo largo de este proyecto de aprendizaje: |
||
# [[{{PAGENAME}}/Puzle deslizante de 8 piezas|Puzle deslizante de 8 piezas]] |
# [[{{PAGENAME}}/Puzle deslizante de 8 piezas|Puzle deslizante de 8 piezas]] |
||
# [[{{PAGENAME}}/Moviendose por el tablero|Moviendose por el tablero]] |
# [[{{PAGENAME}}/Moviendose por el tablero|Moviendose por el tablero]] |
||
#[[Detective en escena del crimen nocturna]] |
|||
# ... |
|||
# [[{{PAGENAME}}/Frente de Guerra Zombi|Frente de Guerra Zombi]] |
# [[{{PAGENAME}}/Frente de Guerra Zombi|Frente de Guerra Zombi]] |
||
# [[{{PAGENAME}}/Tiroteo entre fantasmas|Tiroteo entre fantasmas]] |
# [[{{PAGENAME}}/Tiroteo entre fantasmas|Tiroteo entre fantasmas]] |
Revisión del 14:51 10 jun 2018
Facultad | Ingeniería |
Departamento | Informática |
Área | Tecnologías de información |
Nivel | Universitario |
Bienvenido a este proyecto de aprendizaje dedicado a ampliar conocimientos tanto teóricos como prácticos en torno a la investigación y el desarrollo de inteligencia artificial aplicada a videojuegos y aplicaciones multimedia interactivas en general.
Este proyecto forma parte de la Wikiversidad. Te invitamos a saber más sobre ella y a descubrir cómo dar tus primeros pasos por aquí. Además te informamos de que la Wikiversidad tiene un manual de estilo y ha definido unas políticas que deben respetarse a la hora de editar cualquiera de sus wiki-páginas.
Existe un proyecto de aprendizaje en la Wikipedia inglesa creado a partir de este.
Objetivos
Este proyecto de aprendizaje ofrece la posibilidad de conocer los fundamentos de la inteligencia artificial, así como las principales técnicas de modelización y desarrollo así como algunas herramientas y lenguajes disponibles para desarrollar este tipo de sistemas informáticos, buscando su aplicación práctica en la industria del entretenimiento interactivo. El énfasis se pone en capacitar a los participantes para comprender y analizar problemas relacionados con el razonamiento y la planificación automática, el comportamiento de agentes inteligentes, o la creatividad computacional, para después diseñar e implementar soluciones informáticas eficaces y eficientes a dichos problemas.
Además se incita a los participantes a poner en uso lo aprendido mediante el desarrollo de una serie de prácticas que ilustran todos los principios y procesos vistos en la teoría, y que permiten ir iniciándose en el trabajo de un Ingeniero de Inteligencia Artificial para Videojuegos.
En esta página pueden consultarse los conceptos que se abordan formalmente en este proyecto de aprendizaje:
Materiales didácticos
Los principales materiales didácticos de este proyecto son las lecciones que se desarrollan colaborativamente entre todos los participantes. Estas lecciones, y en general las actividades de este proyecto de aprendizaje, pueden tener asociadas lecturas recomendadas: fuentes bibliográficas, guías, artículos de la propia Wikipedia o de Wikilibros. Los complementos más relevantes para todo el proyecto de aprendizaje se recopilan en la sección de referencias de esta misma página.
Aunque tenga una cierta componente teórica, este proyecto de aprendizaje incluye numerosas actividades de carácter práctico. Son bienvenidos los ejercicios, casos prácticos, pruebas de nivel de conocimientos, trabajos en grupo o tareas similares, todas ellas actividades que deberán estar asociadas a sus respectivas lecciones.
Existe un calendario de clases con las fechas reales de las distintas ediciones del curso universitario que realizan los participantes y que suponen el inicio de este proyecto de aprendizaje. El calendario incluye las tareas y prácticas reales que semana a semana se han realizando, de manera que pueda servir como referencia a la hora de adaptar el proyecto de aprendizaje a las circunstancias concretas de cada nuevo participante:
Lecciones
A continuación se presenta el listado con las distintas lecciones que se han ido generando como material didáctico de este proyecto de aprendizaje. Las lecciones están organizadas en distintos bloques (o temas) y al final hay una sección con anexos que complementan la información de las lecciones.
Es importante que, a la hora de crear o editar lecciones, tengas en cuenta los siguientes consejos:
Bloque 1: Introducción a la Inteligencia Artificial
Estas lecciones introducen cuestiones básicas sobre la inteligencia artificial y su relación con el mundo del videojuego.
Lecciones:
En este bloque se sugiere continuar investigando en tipos de inteligencia distintas de la humana (más como una herramienta expresiva), aplicaciones habituales de la IA en videojuegos (distinguiendo según géneros y tecnologías disponibles). No se profundiza sin embargo en aplicaciones que estén alejadas del ámbito del videojuego.
Bloque 2: Resolución de Problemas
Estas lecciones entran de lleno en el problema de desarrollar sistemas informáticos capaces de resolver problemas mediante el razonamiento, o al menos sabiendo que requieren cierta inteligencia similar de alguna forma a la del ser humano. Nos centramos en modelar la resolución de problemas como una búsqueda en el espacio de estados posibles, y a su vez cuando usamos diversas estrategias para esta búsqueda. Una aplicación típica en videojuegos es la planificación de rutas, como se estudiará más adelante.
Lecciones:
- Modelos racionales de resolución
- Búsqueda en el espacio de estados
- Estrategias de búsqueda no informada
- Estrategias de búsqueda informada
- Búsqueda con adversarios
- Planificación automática
En este bloque se sugiere continuar investigando en otros paradigmas de la IA, uso de librerías que ofrecen diversas estrategias de búsqueda, variantes aún más específicas de los algoritmos. No podremos sin embargo profundizar en los problemas de satisfacción de restricciones, muy útiles en Logística, pero que no abordaremos al no ser tan relevante en videojuegos.
Bloque 3: Conocimiento, Razonamiento y Decisión
Estas lecciones abordan el temas de representación (marcos, lógica, reglas de producción...) y uso del conocimiento (y sus tipos), así como la toma de decisiones.
Lecciones:
- Representación del conocimiento
- Representación en lógica de primer orden
- Razonamiento en lógica de primer orden
- Conocimiento incierto
- Razonamiento probabilista
- Teoría de la decisión
En este bloque se sugerirá continuar investigando en: razonadores que pueden conectar externamente o ir integrados con un videojuego, herramientas y lenguajes para definir comportamiento mediante reglas u otras técnicas, e incluso ontologías. Aunque es un tema de suma importancia, no abordaremos en ningún bloque el campo del Aprendizaje automático porque queda pendiente para ser tratado en otras asignaturas y sus correspondientes proyectos de aprendizaje.
Bloque 4: Percepción, Comunicación y Acción
Estas lecciones abordan el concepto de agente inteligente así como las técnicas más habituales para conseguir comportamiento autónomo en videojuego, profundizando en cuestiones relativas a lo que hace un agente inteligente en el juego, además de pensar: percibe, se comunica y actúa. La aplicación típica en videojuegos es el diseño de personajes no jugadores (NPCs).
Lecciones:
- Sistemas multi-agente
- Percepción
- Movimiento
- Planificación de rutas
- Toma de decisiones
- Tácticas y estrategias
- Herramientas de autoría
En este bloque se sugerirá continuar investigando en Inteligencia Artificial distribuida y sistemas multiagente, en Procesamiento de Lenguaje Natural y modelos probabilísticos para realizar algunas de estas funciones. No veremos nada sobre Visión artificial y Robótica, aunque son campos muy relacionados, tampoco profundizaremos en el uso de los actuales servicios cognitivos que ofrecen las grandes plataformas en la nube de Microsoft Azure, IBM Bluemix y otras.
Bloque 5: Creatividad y Expresividad
Estas lecciones profundizan en cuestiones relativas a la generación procedimental de contenido y a técnicas avanzadas para conocer al jugador, adaptar dinámicamente el juego y evaluar el impacto de la inteligencia artificial (Creatividad Computacional, de hecho, incluso hablando de Expresividad Artística) en la experiencia final del jugador. La aplicación típica en videojuegos es la generación automática de contenidos como niveles, misiones, personajes o argumentos enteros.
Lecciones:
En este bloque se sugerirá continuar investigando en modelado del jugador, adaptación dinámica del juego y evaluación de la experiencia.
Anexos
Para complementar y resumir el contenido más relevante de las lecciones se ofrecen anexos complementarios a estas. No se trata de hacer listados exhaustivos sino de reunir aquí referentes mencionados en las lecciones y listados relevantes para este proyecto de aprendizaje.
Se proponen los siguientes anexos que estarán en permanente proceso de construcción y ampliación:
Actividades
Las actividades de este proyecto de aprendizaje son talleres sobre temas específicos y prácticas relacionadas con estos y desarrolladas por los participantes. Estas actividades se irán exponiendo a continuación para que sirvan como ejemplos y casos prácticos para el estudio.
Es importante que, a la hora de crear o editar actividades, tengas en cuenta los siguientes consejos:
Talleres
Estos son los talleres donde se abordan cuestiones específicas del desarrollo de sistemas de inteligencia artificial:
- Resolviendo puzles
- Moviendose por el tablero
- Exploradores y Vigilantes
- Decisiones de Supervivencia
- Aliados y enemigos en combate
- ...
Prácticas
Estas prácticas son casos que han realizado los alumnos a lo largo de este proyecto de aprendizaje:
- Puzle deslizante de 8 piezas
- Moviendose por el tablero
- Detective en escena del crimen nocturna
- Frente de Guerra Zombi
- Tiroteo entre fantasmas
- ...
Referencias
Como fuente de información principal para este proyecto de aprendizaje disponemos de cierta bibliografía básica en el campo. Esta se compone de algunos libros bastante conocidos sobre inteligencia artificial, artículos sobre las técnicas de implementación de estos sistemas, y algún otro material que consideramos fiable. Las referencias de cada lección están documentadas en sus propias páginas, pero como principales referencias del curso tenemos estos libros:
- Buckland, M.: Programming Game AI by Example (2004)
- Millington, I., Funge, J.: Artificial Intelligence for Games (2009)
- Russell, S., Norvig, P.: Artificial Intelligence: A Modern Approach. Global Edition (2016)
Y de manera complementaria, para saber más, se recomienda consultar artículos de sitios web o congresos relevantes en este campo, así como consultar otros libros que presentan teorías y puntos de vista muy inspiradores. Algunos de estos aparecen mencionados en las lecciones como referencias:
- Bostrom, N.: Superintelligence: Paths, Dangers, Strategies (2016)
- Brown, M.: Game Maker's Toolkit y otras series (2015-2018) con videos como What Makes Good AI? o How Event[0] Works
- Champandard, A. AIGameDev
- Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning (Adaptive Computation and Machine Learning) (2017)
- DeLoura, M. et al.: Game Programming Gems (Series 2000-2010)
- Domingos, P.: The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World (2015)
- Kurzweil, R.: How To Create A Mind (2014)
- Luger, G.F. Artificial Intelligence. Addison-Wesley (2005)
- Pajares, G., Santos, M.: Inteligencia Artificial e Ingeniería del Conocimiento. RA-MA (2005)
- Palma, J.T., Marín, R.: Inteligencia Artificial. McGraw-Hill (2008)
- Rabin, S: AI Wisdom web site
- Rabin, S.: AI Game Programming Wisdom (Series 2002-2008)
- Rabin, S.: Game AI Pro: Collected Wisdom of Game AI Professionals (Series 2013-2017)
- Schwab, B.: AI Game Engine Programming (2004)
Participantes activos
Participantes activos en este grupo de aprendizaje:
- Federico Peinado (Iniciador)
- ...