← Projects
UC Berkeley
Games2025

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
Dungeon Explorer gameplay

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

Stack

JavaObject-Oriented ProgrammingData StructuresAlgorithmsProcedural GenerationGame DevelopmentSoftware ArchitectureGit