Phantom Dungeon es un juego de laberintos desarrollado en C. El jugador debe navegar por un laberinto recolectando premios y evitando ser capturado por fantasmas mientras busca la salida. Se utilizó la biblioteca SDL2 para la interfaz gráfica, y se cuenta con conexión a servidor para tener acceso a un ranking de jugadores.
Características principales:
- Interfaz gráfica con SDL
- Generación de laberintos utilizando algoritmo DFS y algunas modificaciones.
- Movimientos de fantasmas utilizando algoritmo BFS (garantiza encontrar el camino óptimo)
- Sistema de puntuación y ranking
- Arquitectura cliente-servidor (Persistencia de datos de jugadores y partidas)
Requisitos del Sistema para la Compilación
- Windows (probado en Windows 10/11)
- Compilador MinGW
- Code::Blocks
Ante cualquier duda, consulte el manual del juego Manual Phantom Dungeon.pdf. Alli se encuentra una explicación más elaborada de todo lo aquí desarrollado.
- En la página https://github.com/libsdl-org/SDL/releases
- Busque la versión 2.0.22 (link directo)
- Y descargue
SDL2-devel-2.0.22-mingw.zip(link directo) - Copie y descomprima en
libs/SDL2_linkNeededs - Seleccione la carpeta según su arquitectura:
x86_64-w64-mingw32para 64 bitsi686-w64-mingw32para 32 bits
- Copie los siguientes archivos a
SDL2_linkNeededs:- De
bin/:SDL2.dll - De
include/SDL2/: Todos los archivos.h - De
lib/: Todos los archivos.ay.la
- De
Repo\libs\SDL2_linkNeededs\SDL2-2.0.22\x86_64-w64-mingw32>tree
D:.
├───bin (Aquí se encuentra el .dll)
├───include
│ └───SDL2 (Aquí se encuentran los .h)
├───lib (Aquí se encuentran los .a y .la)
│ ├───cmake
│ │ └───SDL2
│ └───pkgconfig
└───share
└───aclocal
- Descarge desde: https://github.com/libsdl-org/SDL_image/releases
- Versión 2.8.8:
SDL2_image-devel-2.8.8-mingw.zip(link directo a la versión) (link directo a la descarga) - Copie a
libs/SDL2_morey descomprima - Copie a
SDL2_more:SDL2_image.dll(debin/)SDL_image.h(deinclude/)
Repo\libs\SDL2_more\SDL2_image-2.8.8\x86_64-w64-mingw32>tree
D:.
├───bin (Aquí se encuentra el .dll)
├───include (Aquí se encuentra el .h)
│ └───SDL2
└───lib
├───cmake
│ └───SDL2_image
└───pkgconfig
- Descarge desde: https://github.com/libsdl-org/SDL_ttf/releases
- Versión 2.24.0:
SDL2_ttf-devel-2.24.0-mingw.zip(link directo a la version) (link directo a la descarga) - Copia a
libs/SDL2_morey descomprime - Copia a
SDL2_more:SDL2_ttf.dll(debin/)SDL_ttf.h(deinclude/SDL2/)
Nota: Asegurese de tener todas las bibliotecas instaladas correctamente antes de compilar. Ante cualquier inconveniente, consulte la sección de instalación detallada en el manual de juego (Manual Phantom Dungeon.pdf) adjunto.
Debe compilar tanto el proyecto .cbp de Cliente como de Servidor para poder jugar.
Si desea crear el proyecto de codeblocks de Cliente por su cuenta, los linkeos deben quedar de la siguiente manera:
- Linker Settings → Link libraries:
SDL2 SDL2main SDL2_ttf SDL2_image - Linker Settings → Other linker options:
-lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf - Search directories → Compiler y Search directories → Linker:
./libs/SDL2_linkNeededs ./libs ./libs/SDL2_more ./libs/graphics ./libs/Common ./libs/Cola ./libs/Vector
Simplemente ejecute PhantomDungeon.bat y El archivo manejará automáticamente la ejecución
Según cual proyecto quiera ejecutar desde codeblocks (no podrá hacerlo con ambos) debera modificar las macros respectivas:
- Cliente → En
Cliente/constants.h:COMPILACION_DESDE_BIN false - Servidor → En
Servidor/constantes.h:COMPILACION_DESDE_BIN false
Estas macros tienen como valor predefinido true ya que la opción predeterminada es la ejecución recomendada desde el .bat. Al cambiarlos a false las rutas relativas se tomarán respecto del archivo del proyecto .cbp y no del binario.
Recuerde siempre ejecutar primero el proyecto servidor para que el cliente pueda conectarse. Caso contrario no podrá acceder a algunas funcionalidades.
El menu tiene varias opciones
- Jugar
- Salir
- Ver configuracion
- Ver ranking (solo posible con el servidor conectado)
Seleccione Jugar, si el servidor esta conectado se le solicitará un nombre, y luego presionando Jugar de nuevo ya esta listo para empezar a divertirse.
- Navegar por el laberinto recolectando premios
- Evitar a los fantasmas que persiguen al jugador
- Encontrar la salida y ganar
- Flechas del teclado o WASD para moverse
- La ventana de SDL debe estar activa para recibir las entradas de teclado
- Puntuación: Se acumula recolectando premios
- Vidas extra: Se puede recolectar vidas adicionales
- Ranking: La puntuación se guarda en un ranking global
- Configuraciones: Se puede ver y modificar configuraciones del juego
- DFS (Depth-First Search) para generación de laberintos
- Ajustes post-generación para mejorar jugabilidad
- Inserción de entidades mediante mascara (evita que se posicionen todas juntas)
- BFS (Breadth-First Search) para pathfinding óptimo
- Sistema de cooldown para movimiento balanceado
Grupo: Los predicadores de Linux
Alumnos:
- Conforti Luis
- Gallo Valentina
- Juarez Javier
- Porras Federico
Materia: Algoritmos y Estructuras de Datos (3640)
Universidad Nacional de La Matanza - 2º Cuatrimestre 2025
Para más detalles, consultas o reportar issues, visite el repositorio oficial: https://github.com/LinuxPreachers/PhantomDungeon