Dungeon Quest is a simple web-based dungeon exploration game. The player moves through rooms, collects useful items, fights enemies, and eventually unlocks access to the treasure room. The game is designed around DOM manipulation and basic game-state management in JavaScript, making it a good project for practising front-end fundamentals and interactive logic.
This repository is written and structured so that someone new joining the project can understand:
- what the project does,
- how the files are organised,
- how the game flow works,
- what has already been built,
- and what can be improved next.
This project uses:
- HTML5 for the structure of the game page
- CSS3 for layout, colours, and button styling
- JavaScript for game logic, room navigation, item collection, combat, and inventory handling
- GitHub for version control and project hosting
- GitHub Pages as the intended deployment platform for the live version
- Room-based dungeon exploration
- Interactive movement buttons based on available exits
- Inventory system
- Item collection
- Locked chest interaction
- Monster and boss fights
- Treasure room unlock mechanic
- Win condition when the final treasure is reached
- Simple browser-based interface with no extra frameworks required
These are good candidates for future improvement:
I— Open inventoryL— Look around current roomQ— Quit game- Arrow keys or
W A S D— Movement E— Interact / pick up itemF— Fight enemy
If keyboard support is added later, this section should be updated to match the implemented controls.
The project started as a simple dungeon game concept built using only core front-end technologies. The aim was to create a playable game loop without relying on external libraries or frameworks.
The main development process followed these steps:
-
Created the base page structure in HTML
- Added the game title
- Created a display area for game text
- Added containers for movement, items, and actions
-
Styled the game with CSS
- Designed a dark dungeon-themed interface
- Added button styling for player interaction
- Created a scrollable game output area
-
Built the game logic in JavaScript
- Defined the dungeon rooms as objects
- Added movement between rooms
- Added items and inventory
- Added enemy and boss encounters
- Added room locking and unlock progression
- Added a win condition
-
Prepared the project for GitHub
- Split concerns into separate files
- Connected HTML, CSS, and JavaScript properly
- Began documenting the project for maintainability and collaboration
This project helped reinforce several important front-end development concepts:
- How to separate structure, styling, and logic into different files
- How to connect HTML, CSS, and JavaScript correctly
- How to use JavaScript objects to model game data
- How to update the DOM dynamically based on game state
- How to manage player inventory and conditional progression
- How small logic issues, such as file naming mismatches or repeated item collection, can affect the whole user experience
- How important documentation is when preparing a personal project for public GitHub use
It also showed the value of writing projects in a way that other developers can understand, not just the original creator.
There are several ways this project could be expanded and improved:
- Add keyboard controls
- Add health, damage, and combat stats
- Add sound effects and background music
- Add images or icons for rooms, enemies, and items
- Improve the visual UI with cards, animations, and status panels
- Add restart functionality
- Add save/load support
- Prevent duplicate reward collection more consistently
- Add multiple levels or branching dungeon paths
- Add unit tests for core game logic
- Refactor JavaScript into smaller, reusable functions for better maintainability
For team development, another strong improvement would be separating the game data from the gameplay engine, for example by moving room definitions into a dedicated file or data structure.
-
Clone the repository:
git clone https://github.com/NotDizzyButFizzy/Dungeon-Quest-Game.git
-
Open the project folder
-
Make sure the main files are present:
index.htmlDungeon.cssDungeon.js
-
Open
index.htmlin your browser
- Open the project in Visual Studio Code
- Install the Live Server extension
- Right-click
index.html - Select Open with Live Server
- Push the project to GitHub
- Go to Settings
- Open Pages
- Set the branch to
main - Set the folder to
/root - Save and wait for deployment
Dungeon-Quest-Game/
├── index.html
├── Dungeon.css
├── Dungeon.js
└── README.md
If you are new to this project, start by reading the files in this order:
index.html— page structure and linked assetsDungeon.css— visual stylingDungeon.js— game logic and room system
When making changes:
- keep file names consistent with the references in
index.html - test the game after every change
- document any new feature clearly in this README
- keep code readable and beginner-friendly where possible