Plug-in de Inteligencia Artificial para NPC en un juego RPG desarrollado en Unreal Engine 4
Artificial Inteligence plug-in for NPC in an RPG game developed in Unreal Engine 4
Citación
Fecha
2021-06-04Autor
Reina Rojas, David Santiago
Romero Hernandez, Erikson Javier
Título obtenido
Ingeniero Multimedia
Palabras claves
; videojuegos; inteligencia artificial
Metadatos
Mostrar el registro completo del ítem
Documentos PDF
Resumen
En el desarrollo de los videojuegos de tipo RPG (Role Play Game por sus siglas en inglés), existe una amplia cantidad de personajes no jugables (NPC por sus siglas en inglés), que en algunas ocasiones no destacan por su inteligencia artificial (IA), llevando a cabo comportamientos incongruentes, lo cual puede romper la inmersión y la jugabilidad. Este tipo de situaciones puede dañar el flujo de la partida en el momento que el jugador interactúa con el NPC.
La configuración de la IA de cada NPC varía de acuerdo a cada título, género, o fin al que se quiere mostrar en el juego, para esto, dentro de los motores de desarrollo de videojuegos, se implementan herramientas que realicen la implementación de esta característica al NPC. Unreal Engine hace manejo de árboles de comportamiento propios, los cuales se encargan de realizar una acción, dependiendo de un conjunto de entradas que son recopiladas por el ambiente y definidas por el desarrollador.
El presente proyecto plantea el diseño e implementación de un complemento de IA para el motor de videojuegos Unreal Engine 4, ya que este editor permite un gran procesamiento visual y de desarrollo, que facilita la implementación de este y futuros proyectos de mayor envergadura; haciendo uso del árbol de búsqueda de Monte Carlo (MCTS por sus siglas en inglés), que permite generar una serie de decisiones aleatorias, escogiendo la mejor a partir de los cálculos basados en simulaciones aleatorias que agilizan la toma de posibles acciones.
Para validar la implementación propuesta en este trabajo de grado, se generó un ambiente de pruebas de tipo RPG para toma de decisiones, acotado por un escenario de casillas con mecánicas basadas en combates por turnos, donde cada NPC cuenta con los conceptos armamentísticos derivados de las antiguas legiones romanas, conceptualizando las funciones de cada legionario junto al equipamiento que los acompañaba durante cada batalla, en pos de dinamizar estos comportamientos de manera lógica, incluyendo un esquema basado en variables que definen una personalidad, junto a paquetes de estado que identifican las cualidades de miedo, fe y venganza que derivan de las acciones del jugador y afectan el comportamiento del actor.
Lo que lleva a corroborar la implementación con un sistema de tres pruebas, las cuales cuentan con distintos entornos construidos en base a la cantidad de NPC presentes en escena, junto a la ubicación de los mismos alrededor de la escenografía y del jugador, donde se clasifican tres tipos de NPC que se diferencian por sus valores de personalidad, los cuales son el IQ (del alemán Intelligenzquotient, conocido como coeficiente intelectual), miedo, valentía, venganza, locura, liderazgo y confianza, para así, formar un carácter a cada decisión que se deba tomar. Generando rangos basados en dichas variables que representan el nivel bajo, básico y avanzado, a los cuales hará frente al jugador, con la finalidad de analizar los árboles generados y sus comportamientos dependiendo de dichas configuraciones, arrojando datos que evidencian las relaciones entre actores de tipo NPC, y la varianza en su actitud para afrontar diferentes acciones realizadas por la persona que los confronte.
In the development of RPG (Role Play Game) video games, there are a large number of non-playable characters (NPCs), which sometimes do not stand out for their artificial intelligence (AI), performing incongruent behaviours, which can break immersion and gameplay. These types of situations can damage the flow of the game as the player interacts with the NPC.
The configuration of the AI of each NPC varies according to each title, genre, or purpose to be shown in the game, for this, within the game development engines, tools are implemented to perform the implementation of this feature to the NPC. Unreal Engine handles its own behaviour trees, which are responsible for performing an action, depending on a set of inputs that are collected by the environment and defined by the developer.
This project proposes the design and implementation of an AI complement for the video game engine Unreal Engine 4, since this editor allows a great visual processing and development, which facilitates the implementation of this and future larger projects; making use of the Monte Carlo search tree (MCTS), which allows to generate a series of random decisions, choosing the best one from the calculations based on random simulations that speed up the taking of possible actions.
To validate the implementation proposed in this degree work, an RPG-type test environment for decision making was generated, bounded by a scenario of squares with mechanics based on turn-based combat, where each NPC has the weaponry concepts derived from the ancient Roman legions, conceptualising the functions of each legionary along with the equipment that accompanied them during each battle, in order to dynamise these behaviours in a logical manner, including a scheme based on variables that define a personality, along with status packs that identify the qualities of fear, faith and revenge that derive from the player's actions and affect the actor's behaviour.
This leads to corroborate the implementation with a system of three tests, which have different environments built based on the number of NPCs present in the scene, along with the location of them around the scenery and the player, where three types of NPCs are classified and differentiated by their personality values, which are the IQ (German Intelligenzquotient, known as IQ), fear, bravery, revenge, madness, leadership and confidence, to form a character for each decision to be taken. Generating ranges based on these variables that represent the low, basic and advanced level, which the player will face, in order to analyse the trees generated and their behaviours depending on these configurations, providing data that show the relationships between NPC type actors, and the variance in their attitude to face different actions performed by the person who confronts them.
Colecciones
- Ingeniería en Multimedia [121]