Dungeon Explorer (CS61B Final Project)
Tile-based exploration game built as a project in UC Berkeley's CS61B Data Structures course. Features procedurally generated worlds, save/load, HUD, and interactive gameplay — written in Java from scratch.
A project from UC Berkeley's CS61B: Data Structures course, focused on designing and implementing a complete tile-based game engine using object-oriented programming, procedural world generation, and persistent game state management.
The Challenge
The goal was to create a game capable of generating unique worlds from user-provided seeds while supporting player interaction, saving/loading, and additional gameplay features. The project emphasized software architecture, maintainability, and managing complexity in a larger codebase — all implemented from scratch in Java.
Features
- Procedurally generated dungeon worlds
- Randomized room and corridor generation
- Interactive player movement
- Save and load functionality
- Persistent game state
- Heads-up display (HUD)
- Multiple world themes and visual styles
- High-score tracking
- Custom gameplay mechanics

Technical Implementation
The game was implemented in Java using object-oriented design principles. The world generation system uses seeded randomness, ensuring that identical seeds generate identical worlds — allowing worlds to be recreated, saved, and restored consistently. The project required designing data structures and systems capable of handling world generation, rendering, player interaction, and state persistence.
What I Learned
This project strengthened my understanding of:
- Large-scale software design and architecture
- Object-oriented programming in practice
- Data structures and algorithms
- Procedural content generation
- State management, serialization, and persistence
- Debugging and testing larger applications