Aplicación de técnicas de aprendizaje automático supervisables por el diseñador al desarrollo de agentes inteligentes en videojuegos
- Marco A. Gómez-Martín Director
- Pedro González Calero Director/a
Universidad de defensa: Universidad Complutense de Madrid
Fecha de defensa: 21 de junio de 2017
- María Belén Díaz Agudo Presidenta
- Antonio Alejandro Sánchez Ruiz-Granados Secretario
- Antonio José Fernández Leiva Vocal
- David Llansó García Vocal
- David Camacho Fernández Vocal
Tipo: Tesis
Resumen
La creación de los comportamientos de los personajes que interaccionan con el jugador en videojuegos es una tarea compleja que involucra a diferentes roles dentro de la industria del videojuego, con diferentes conocimientos y motivaciones, principalmente programadores, diseñadores y artistas. Dicho proceso ha intentado ser simplificado con multitud de modelos computacionales durante décadas, habiendo un consenso actual en usar árboles de comportamientos de forma generalizada, sobre todo en comportamientos complejos que requieren de cierta coordinación con otros NPCs o con el jugador. Multitud de editores gráficos se han creado para simplificar la creación de estos comportamientos, permitiendo sistemas cada vez más potentes y robustos. Aun así, en la industria se sigue prefiriendo que la programación de los comportamientos la realicen los programadores. Esto sucede porque los propios programadores no se fían demasiado de los diseñadores, además de que muchos diseñadores se sienten abrumados cuando tienen que pensar usando el lenguaje de los árboles de comportamiento. Así pues, los diseñadores acaban diseñando el comportamiento y los programadores llevándolos a cabo. En el presente trabajo, nos centraremos en resolver el problema de comunicación que existe entre los programadores y los diseñadores, a la hora de crear comportamientos, debido a esa relación entre ambos, que hace que sea necesario múltiples iteraciones hasta conseguir que el comportamiento sea desarrollado satisfactoriamente. Este problema ha sido evaluado empíricamente en el presente trabajo, confirmando que los diseñadores sin conocimientos de programación tienen más dificultadas a la hora de crear comportamientos, incluso teniendo una herramienta gráfica para crearlos y restringiendo sólo el uso de esta herramienta para crear comportamientos de alto nivel. Por lo tanto, se propone un modelo en el que los diseñadores puedan crear comportamientos sin necesidad de programar, usando para ello una serie de técnicas englobadas bajo el epígrafe de Programación por Demostración, que consiste en programar un sistema usando la propia interfaz del mismo, sin necesidad de escribir un programa en un lenguaje de programación, ni dibujar un modelo gráfico que represente dicho programa, simplemente aportándole ejemplos de cómo resolver las diferentes situaciones que se plantean en el juego, tomando el control del propio personaje. El sistema diseñado permite utilizar diferentes modelos para aprender los comportamientos. Se utiliza razonamiento basado en casos, árboles de decisión y redes de neuronas. Cada modelo tiene unas ventajas e inconvenientes que se discuten en el presente trabajo. Además, la programación por demostración se integra dentro del formalismo de los árboles de comportamiento, creando un nodo especial para ello. Esta integración aporta mayor expresividad a los modelos, permitiendo dividir los comportamientos complejos en otros más sencillos, que pueden ser después seleccionados con un conjunto de nodos de árbol de comportamiento. Los experimentos realizados demuestran que usar programación por demostración, dentro del modelo de árboles de comportamiento, tiene múltiples ventajas. Por ejemplo, se pueden conseguir modelos más precisos combinando los árboles de comportamiento y la programación por demostración, que solamente usando esta última. Así mismo, el sistema puede garantizar que el comportamiento final que se utilice en el juego esté libre de comportamientos emergentes, algo que normalmente no desean los diseñadores de videojuegos, gracias a que si el comportamiento no actúa con la precisión esperada, el sistema puede crear un árbol que tenga un comportamiento equivalente al que el diseñador entrenó, que será totalmente determinista y ajustable por los desarrolladores.