Full text
|
PDF
- Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (11MB) |
| Title: | Diseño y desarrollo de un videojuego de acción 2D con mecánicas Roguelike |
|---|---|
| Author/s: |
|
| Contributor/s: |
|
| Item Type: | Final Project |
| Degree: | Grado en Matemáticas e Informática |
| Date: | June 2026 |
| Subjects: | |
| SDG: | |
| Faculty: | E.T.S. de Ingenieros Informáticos (UPM) |
| Department: | Lenguajes y Sistemas Informáticos e Ingeniería del Software |
| Creative Commons Licenses: | Recognition - No derivative works - Non commercial |
|
PDF
- Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (11MB) |
Este Trabajo de Fin de Grado presenta el diseño y desarrollo de Last Line, un videojuego 2D perteneciente al género Roguelike, desarrollado utilizando el motor Unity y el lenguaje de programación C#.
El proyecto tiene como objetivo principal el desarrollo de una experiencia jugable centrada en la supervivencia frente a grandes oleadas de enemigos, incorporan do sistemas de progresión tanto dentro de cada partida como entre sesiones de juego, generación procedural del entorno y diferentes personajes jugables para aumentar la variedad y la rejugabilidad.
Desde el punto de vista técnico, el videojuego se desarrolló siguiendo una arquitectura modular basada en componentes, aprovechando el modelo de programación de Unity. Los distintos sistemas del juego se encuentran desacoplados y organizados mediante clases reutilizables y ScriptableObjects, permitiendo separar los datos de configuración de la lógica principal de funcionamiento. Esta aproximación facilita tanto el mantenimiento del código como la escalabilidad del proyecto, permitiendo añadir nuevos personajes, habilidades, enemigos u objetos con un impacto reducido sobre el resto de sistemas.
Durante el desarrollo se implementaron diversos sistemas fundamentales, entre los que destacan el sistema de magias, los objetos pasivos, la gestión de inventario y estadísticas, la generación procedural del escenario mediante chunks, la aparición dinámica de enemigos, la interfaz de usuario y la persistencia de datos mediante serialización JSON.
Asimismo, se incorporaron distintas técnicas de optimización orientadas a mantener un rendimiento estable incluso con un elevado número de enemigos y elementos activos simultáneamente en pantalla.
Como resultado, se obtuvo un prototipo funcional, modular y fácilmente extensible, que demuestra la aplicación práctica de conceptos relacionados con el desarrollo de videojuegos, la programación orientada a objetos, la arquitectura de software y el diseño de sistemas interactivos en tiempo real.
ABSTRACT
This Final Degree Project presents the design and development of Last Line, a 2D Roguelike video game developed using the Unity engine and the C# programming language.
The main objective of the project is the development of a gameplay experience focused on surviving large waves of enemies, incorporating progression systems both during individual runs and between game sessions, procedural environment generation, and multiple playable characters to increase variety and replayability.
From a technical perspective, the video game was developed following a modular component-based architecture, taking advantage of Unity’s programming model. The different game systems are decoupled and organized through reusable classes and ScriptableObjects, allowing configuration data to be separated from the main gameplay logic. This approach improves code maintainability and scalability, making it easier to add new characters, abilities, enemies, or items with minimal impact on the rest of the project.
During development, several core systems were implemented, including the magic system, passive items, inventory and statistics management, procedural terrain generation using chunks, dynamic enemy spawning, the user interface, and data persistence through JSON serialization.
Additionally, several optimization techniques were incorporated to maintain stable performance even with a high number of enemies and active elements simultaneously displayed on screen.
As a result, a functional, modular, and easily extensible prototype was obtained, demonstrating the practical application of concepts related to video game devel opment, object-oriented programming, software architecture, and the design of real-time interactive systems.
| Item ID: | 97084 |
|---|---|
| DC Identifier: | https://oa.upm.es/97084/ |
| OAI Identifier: | oai:oa.upm.es:97084 |
| Deposited by: | Biblioteca ETSI de Ingenieros Infomáticos |
| Deposited on: | 10 Jul 2026 08:47 |
| Last Modified: | 10 Jul 2026 08:47 |
Publishing in Archivo Digital from Portal Científico