A single-player dungeon adventure game combining exploration with programming challenges. Navigate through dungeons while testing your knowledge of Object-Oriented Programming concepts and design patterns.
- Multiple difficulty levels with varying map sizes and challenges
- Programming questions focused on OOP concepts and design patterns
- Dynamic dungeon exploration with different room types
- Power points system for game progression
- Inventory system for collecting hints and managing answers
- Leaderboard tracking system for tracking the best players
- Automatic game state persistence
The easiest way to run the game is using Docker Compose:
# Clone the repository
git clone https://github.com/mirislomovmirjalol/dungeon-game.git
cd dungeon-game
# Start all services
docker-compose up --build
Access the game at http://localhost:5173
Make sure you have Java 17 and Maven installed
Required environment variable:
MONGODB_URI
mongodb://localhost:27017/dungeon_game
If you want to use different MongoDB server, you can change the MONGODB_URI
in the application.properties
file.
cd backend
# Install dependencies
mvn clean install
# Run the application
mvn spring-boot:run
Required environment variable:
VITE_API_URL
(default: http://localhost:8080/api)1
cd frontend
# Install dependencies (using npm, yarn, or pnpm)
npm install
# Run the development server
npm run dev
The API documentation is available via Swagger UI:
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
Backend tests can be run using Maven:
cd backend
mvn test
Each difficulty level has different characteristics:
- 3x3 grid map
- 15 initial power points
- 1 power point per move
- Minimum 2 questions to complete
- 5x5 grid map
- 25 initial power points
- 2 power points per move
- Minimum 8 questions to complete
- 10x10 grid map
- 50 initial power points
- 3 power points per move
- Minimum 25 questions to complete