Publication:
Diseño de una Arquitectura de Sistemas Multiagente para Videojuegos basada en el modelo de Creencias, Deseos e Intenciones en Unity

Research Projects
Organizational Units
Journal Issue
Abstract
Si bien existen multitud de aproximaciones técnicas para desarrollar Inteligencia Artificial, la simulación de personajes con comportamiento realista sigue siendo un gran reto para los desarrolladores de videojuegos, sobre todo si se quieren evitar inabarcables máquinas de estados o árboles de comportamiento. Desde el punto de vista del diseñador, sería más sencillo olvidarse de predecir y programar todas las situaciones posibles y diseñar en torno a tres aspectos fundamentales de cada personaje: qué es lo que cree sobre su entorno, qué metas desea alcanzar y cuáles son sus intenciones más inmediatas, representadas en forma de planes de actuación. Trabajar bajo este paradigma podría dar lugar a videojuegos dotados de una narrativa emergente con gran potencial. Basándonos en dos Trabajos de Fin de Grado anteriores, tomamos como referencia para este proyecto a Jason, el intérprete más popular para implementar sistemas multiagente basados en el modelo de Creencias, Deseos e Intenciones (BDI) implementado en Java y apoyado en el lenguaje declarativo AgentSpeak. Hasta ahora, lo máximo que han logrado otros proyectos es usar Jason como un servidor externo de razonamiento para los agentes, pero esto sigue suponiendo muchos problemas para el programador, como son los tediosos protocolos de comunicación vía sockets, o el manejo, ejecución y depuración de varios entornos de desarrollo simultáneos. El objetivo de nuestro proyecto es agilizar todo el trabajo del programador, permitiendo a la vez diseñar personajes más “humanos” con menor esfuerzo, buscando generar experiencias interactivas más ricas e interesantes. Para ello este trabajo pretende llevar las ideas de Jason a un sistema interno al propio videojuego, con una arquitectura BDI implementada en C# e integrada dentro del entorno de desarrollo de Unity. Se ha llevado a cabo el análisis y la reingeniería de Jason, así como el posterior diseño e implementación de “Jasonity”, un sistema multiagente BDI para Unity inspirado en Jason, comprobando mediante pruebas de integridad que el planteamiento es viable como propuesta para programar agentes sencillos, útiles para dar soporte al comportamiento de personajes de videojuegos y de uso más fácil y natural para el programador.
Although there are many technical approaches to develop Artificial Intelligences, simulating characters with human-like behavior is still a huge challenge for video game developers, especially if you want to avoid unmanageable state machines or behavior trees. From a designer’s point of view, it would be easier to forget about predicting and programming every possible situation and designing around three fundamental aspects for each character: what they believe about their environment, which goals do they want to reach and what their most immediate intentions are, represented as acting plans. Working under this paradigm could mean having video games with emergent narrative with huge potential. Taking two previous Final Degree Projects as a starting point, we took Jason as reference for this project. Jason is the most popular interpreter for implementing multiagent systems based on the Belief, Desire and Intention (BDI) model, implemented in Java and supported by the declarative language AgentSpeak. Until now, the further other projects have gone is using Jason as an external server for the agents’ reasoning, but this is still troublesome for the programmer, just like the tedious communication protocols through sockets or the handling, execution and debugging of several, simultaneous environments. The goal of our project is to speed up the programmer’s work, allowing them to design more “human-like” characters with less effort, looking to generate richer and more interesting interactive experiences. To do this, this project strives to take the concepts in Jason to an internal system in the video game itself, with a BDI architecture implemented in C# and integrated inside the Unity environment. We have conducted an analysis and reengineering process on Jason, as well as the subsequent design and implementation of “Jasonity”, a multiagent system based on BDI for Unity inspired by Jason, verifying through integrity tests that the proposal is viable for programming simple agents, useful to support character behavior in video games, and easier and more natural to use for the programmer.
Description
Trabajo de Fin de Grado, Universidad Complutense, Facultad de Informática, Departamento de Ingeniería del Software e Inteligencia Artificial, Curso 2018/2019
Unesco subjects
Keywords
Citation