|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2024-25
Desarrollo de una plataforma basada en estrategias computacionales e IA para el juego de rol Dungeons & Dragons |
Tecnologías Específicas
Computación
Descripcion y Objetivos
El objetivo de este trabajo es desarrollar una aplicación informática que actúe como "game master" o director de juego en partidas de rol estilo Dungeons & Dragons (D&D), integrando herramientas de Inteligencia Artificial (IA) para automatizar la generación de historias, personajes, escenarios y decisiones. El sistema estará diseñado para simular la narrativa y las interacciones típicas de un juego de rol, permitiendo a los jugadores humanos interactuar con personajes y ambientes generados por el programa. Además, se investigarán y aplicarán diferentes técnicas de IA, como procesamiento de lenguaje natural (conocido como NLP, acrónimo del término en inglés), modelos de toma de decisiones y generación procedimental de contenido. El principal objetivo sería integrar los diferentes elementos y elaborar estrategias computacionales para realizar tareas de máster y otros comportamientos. Este se podría subdividir en los siguientes subobjetivos:
- Automatización del Game Master: Crear un sistema que pueda generar historias dinámicas, eventos narrativos y bifurcaciones basadas en las acciones de los jugadores.
- Simulación de jugadores no humanos: Desarrollar personajes no jugadores (NPCs) controlados por IA, cuyos comportamientos y decisiones se ajusten a las reglas del juego y el contexto de la historia.
- Interactividad con jugadores humanos: Diseñar una interfaz que permita a los jugadores humanos interactuar tanto con la historia generada como con los NPCs, tomando decisiones que afecten a la evolución de la partida.
- Integración de escenarios y entornos ya generados: Estudiar diferentes alternativas existentes para la generación de escenarios, y elección e integración de al menos una de las librerías o algoritmos para ello, ya que necesitamos disponer de "tableros" para nuestro juego.
- Generación de partidas: creación de partidas que resulten coherentes. Esto conllevará combinar el game master, los escenarios generados, los NPCs y otra serie de interacciones con el entorno.
La generación de partidas, junto con el game master, serían el reto principal, puesto que son los elementos menos deterministas, y que deben intentar simular la creatividad de un humano actuando como director de juego.
Metodología y Competencias
La realización de este trabajo se puede dividir en varias etapas:
1.- Investigación inicial: Revisión de las técnicas actuales de IA aplicadas a la generación procedimental de contenido, procesamiento de lenguaje natural y simulación de comportamiento de NPCs en juegos de rol. También hay que buscar diferentes herramientas que permitan simular partidas y visualizar los escenarios en 2D, pues la renderización en 3D sería demasiado lenta para algo que se va generando en tiempo casi real.
2.- Diseño de la arquitectura: Planificación de la estructura del sistema, definiendo módulos como el generador de historias, el sistema de IA para NPCs y la interfaz de usuario. Será un sistema complejo donde se prevé la existencia de múltiples y variadas clases. El principal elemento, que contendrá todo, es una partida o juego.
3.- Desarrollo incremental: Construcción del sistema de forma iterativa, con pruebas y mejoras continuas. Se implementarán inicialmente los componentes principales, como la generación de historias y la creación de personajes asociados. Posteriormente, se añadirán módulos complementarios como la integración con jugadores humanos y las interacciones con el entorno.
4.- Pruebas y validación: Se realizarán sesiones de juego con usuarios reales para probar la eficacia de la IA para generar historias coherentes y adaptar las decisiones según las reglas del juego. Se medirán aspectos como, por ejemplo, la inmersión, la jugabilidad y la capacidad del sistema para adaptarse a diversas situaciones narrativas.
Al final del desarrollo, la memoria del TFG documentará el proceso de diseño, las técnicas utilizadas y los resultados obtenidos. Se aportará también el código de programación, que se prevé realizar en python.
Se trabajarán principalmente (en distinto grado) las siguientes competencias específicas de la tecnología de computación:
- Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos. [CM3]
- Capacidad para conocer los fundamentos, paradigmas y técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen dichas técnicas en cualquier ámbito de aplicación. [CM4]
- Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes entornos inteligentes. [CM5]
- Capacidad para desarrollar y evaluar sistemas interactivos y de presentación de información compleja y su aplicación a la resolución de problemas de diseño de interacción persona computadora. [CM6]
Medios a utilizar
- Lenguaje de programación: se prevé que gran parte de la implementación se desarrolle en Python, pues es el lenguaje donde se encuentran las diferentes librerías que pretendemos emplear. Se requiere un dominio de dicho lenguaje de programación, y buenas habilidades de programación.
- Requisitos hardware: Se necesitará un ordenador de rendimiento de CPU y memoria RAM estándar.
- Posibles herramientas y librerías de IA: se valora el uso de GPT o modelos similares basados en LLM para la generación de texto y narrativas. Podría llegar a necesitarse el uso de otros modelos específicos de aprendizaje profundo o de procesamiento de lenguaje natural. Estos se considerarán según nos guíen el desarrollo, y resultados intermedios del trabajo.
- Sistemas de control de versiones: git para la gestión del código fuente.
- Se estudiará la posibilidad de usar SQLite o Firebase para el almacenamiento de partidas y fichas de personajes.
Bibliografía
- Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach. Pearson.
- Riedl, M., & Bulitko, V. (2013). Interactive Narrative: An Intelligent Systems Approach. AI Magazine, 34(1). [enlace]
- Adams, E. (2009). Fundamentals of Game Design, 2nd Edition New Riders.
- Libros y manuales de lenguajes de programación y las librerías específicas
- Apuntes de las asignaturas de grado: Sistemas Inteligentes, Sistemas Basados en Conocimiento, Interacción Persona-Ordenador y Minería de Datos.
Tutor FLORES GALLEGO, MARIA JULIA | Alumno VALERO DÍAZ, TERESA |
| |