Skip to content
ย 
ย 

Latest commit

ย 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” Bunker-17 โ€” Escape Room Game

Een sfeervol en uitdagend escape room spel gebouwd in Java 21 + JavaFX 21 als schoolproject voor Karel de Grote Hogeschool (2025-2026).


๐Ÿ“– Korte beschrijving

Het jaar is 2031. Een mysterieuze explosie heeft Bunker-17 vergrendeld. Jij bent de enige overlevende.
De noodgenerator heeft nog beperkte stroom. Daarna sluit het ventilatiesysteem af โ€” voor altijd.

Verken de kamers, verzamel items, los puzzels op en ontsnapt uit de bunker voordat de tijd op is.


๐ŸŽฎ Speelpad (spoilervrij)

Het spel telt 6 kamers die je in volgorde doorloopt. Elke kamer heeft zijn eigen sfeer en uitdaging:

  1. Begin in de startkamer en verzamel wat je nodig hebt om verder te komen.
  2. Werk je door de opslagruimte en het labo โ€” let goed op aanwijzingen.
  3. Los de terminal-puzzel op om toegang te krijgen tot de volgende zone.
  4. In de controlekamer wacht een tweede puzzel rond de zekeringkast.
  5. Met het juiste item open je de weg naar de uitgang.

๐Ÿ’ก Tip: lees item-beschrijvingen aandachtig โ€” ze bevatten hints voor de puzzels.


โœจ Features

  • ๐Ÿ—บ๏ธ 6 unieke kamers met eigen beschrijvingen en sfeer
  • ๐Ÿงฉ 2 interactieve puzzels als popup-venster (terminal + zekeringkast)
  • โš™๏ธ Moeilijkheidsgraad โ€” Makkelijk / Normaal / Moeilijk (beรฏnvloedt tijd รฉn inventorylimiet)
  • โฑ๏ธ Countdown-timer met visuele waarschuwing onder 60 seconden
  • ๐Ÿ† Highscores opgeslagen per moeilijkheidsgraad
  • ๐ŸŽฌ Matrix-animatie op het winscherm (Canvas + Timeline)
  • ๐Ÿ’ฅ Animaties op het verliesscherm (shake, fade, knipperend rood)
  • ๐Ÿ”Š Volledige geluidsondersteuning โ€” achtergrondmuziek, item-acties, puzzels, klikgeluiden
  • ๐ŸŽš๏ธ Volume-regelaar in het optiescherm
  • ๐Ÿ“œ Verhaaltekst op het introductiescherm (dynamisch op basis van moeilijkheid)
  • ๐Ÿ’พ Gegevens lezen รฉn schrijven โ€” spelregels uit bestand, highscores naar bestand
  • ๐Ÿ›ก๏ธ Crash-vrije applicatie โ€” alle uitzonderingen afgehandeld met fallback-gedrag

๐Ÿ› ๏ธ Vereisten

Vereiste Versie Opmerking
Java 21 of hoger Download JDK 21
Maven 3.8 of hoger Meegeleverd via mvnw โ€” geen installatie nodig
JavaFX 21 Wordt automatisch gedownload via Maven
Besturingssysteem Windows / Mac / Linux Alle platformen ondersteund

โœ… Je hoeft JavaFX niet apart te installeren. Maven regelt dit automatisch via de pom.xml.


๐Ÿ“ฆ Maven installeren (optioneel)

Het project bevat een ingebouwde Maven wrapper (mvnw / mvnw.cmd), dus Maven hoeft niet apart geรฏnstalleerd te worden. Wil je Maven toch globaal installeren, gebruik dan onderstaande commando's.

Windows

Via Winget (Windows 10/11):

winget install Apache.Maven

Of via Chocolatey:

choco install maven

Controleer de installatie:

mvn -version

macOS

Via Homebrew:

brew install maven

Controleer de installatie:

mvn -version

Linux (Ubuntu / Debian)

sudo apt update
sudo apt install maven -y

Controleer de installatie:

mvn -version

Linux (Fedora / RHEL)

sudo dnf install maven -y

Linux (Arch Linux)

sudo pacman -S maven

๐Ÿ’ก Niet zeker welke methode? Gebruik gewoon mvnw.cmd (Windows) of ./mvnw (Mac/Linux) โ€” dan heb je Maven helemaal niet nodig.


๐Ÿš€ Installatie & Opstarten

Stap 1: Repository clonen

git clone https://github.com/Borja-cools/EscapeRoom.git
cd EscapeRoom

Stap 2: Compileren en starten

Windows:

mvnw.cmd clean javafx:run

Mac / Linux:

./mvnw clean javafx:run

Het spel opent automatisch in een nieuw venster.


Alleen compileren (zonder starten)

mvnw.cmd clean compile

Manuele tests uitvoeren

mvnw.cmd exec:java -Dexec.mainClass="kdg.model.GameTestApp"

Dit voert de ingebouwde modeltest uit en toont โœ…/โŒ in de terminal.


๐Ÿ“ Projectstructuur

EscapeRoom/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ main/
โ”‚       โ”œโ”€โ”€ java/
โ”‚       โ”‚   โ””โ”€โ”€ kdg/
โ”‚       โ”‚       โ”œโ”€โ”€ Main.java              โ† Startpunt van de applicatie
โ”‚       โ”‚       โ”œโ”€โ”€ model/                 โ† Spellogica (MVP model-laag)
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Game.java          โ† Centrale spelcontroller
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ GameBuilder.java   โ† Bouwt het volledige scenario
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Player.java        โ† Speler + inventory
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Room.java          โ† Kamer met items, deuren en puzzels
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Door.java          โ† Bidirectionele deur (vergrendeld/open)
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Item.java          โ† Opraapbaar voorwerp
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Puzzle.java        โ† Puzzellogica (oplossing controleren)
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ Timer.java         โ† Afteltimer
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ DifficultyLevel.java โ† Enum voor moeilijkheidsgraad
โ”‚       โ”‚       โ”‚   โ”œโ”€โ”€ HighscoreManager.java โ† Lees/schrijf highscores.txt
โ”‚       โ”‚       โ”‚   โ””โ”€โ”€ GeluidManager.java โ† Singleton geluidsysteem
โ”‚       โ”‚       โ””โ”€โ”€ view/                  โ† Alle schermen (MVP view + presenter)
โ”‚       โ”‚           โ”œโ”€โ”€ startscherm/       โ† Welkomstscherm
โ”‚       โ”‚           โ”œโ”€โ”€ introductiescherm/ โ† Verhaaltekst voor het spel start
โ”‚       โ”‚           โ”œโ”€โ”€ spelscherm/        โ† Kern van het spel
โ”‚       โ”‚           โ”œโ”€โ”€ puzzelscherm/      โ† Terminal-puzzel popup
โ”‚       โ”‚           โ”œโ”€โ”€ helpscherm/        โ† Spelregels
โ”‚       โ”‚           โ”œโ”€โ”€ highscorescherm/   โ† Scorelijst
โ”‚       โ”‚           โ”œโ”€โ”€ optiescherm/       โ† Moeilijkheid + volume
โ”‚       โ”‚           โ”œโ”€โ”€ winscherm/         โ† Matrix-animatie bij winnen
โ”‚       โ”‚           โ”œโ”€โ”€ verliesscherm/     โ† Animatie bij tijdsverlies
โ”‚       โ”‚           โ””โ”€โ”€ aboutscherm/       โ† Info over de makers
โ”‚       โ””โ”€โ”€ resources/
โ”‚           โ”œโ”€โ”€ spelregels.txt             โ† Gelezen door het helpscherm
โ”‚           โ”œโ”€โ”€ css/stijl.css              โ† Stijl voor MenuBar
โ”‚           โ””โ”€โ”€ audio/                     โ† Alle geluidsbestanden (.mp3)
โ””โ”€โ”€ pom.xml                                โ† Maven configuratie

๐ŸŽฏ Evaluatiecriteria (KdG)

Schermen (min. 5)

Scherm Status
Startscherm โœ…
Spelscherm โœ…
Helpscherm โœ…
Highscorescherm โœ…
Aboutscherm โœ…
Introductiescherm โœ… (bonus)
Optiescherm โœ… (bonus)
Winscherm โœ… (bonus)
Verliesscherm โœ… (bonus)

JavaFX Controls (min. 5 verschillende)

Control Gebruikt in
Button Alle schermen
Label Alle schermen
TextField Startscherm, puzzelschermen
TextArea Helpscherm, spelscherm
ListView Spelscherm, highscorescherm
MenuBar / MenuItem Spelscherm
RadioButton / ToggleGroup Optiescherm
Slider Optiescherm (volume)
Canvas Winscherm (matrix-animatie)

Events (min. 3 verschillende)

Event Waar
ActionEvent Alle knoppen en menu-items
MouseEvent (dubbelklik) Spelscherm โ€” deur navigatie
KeyEvent Startscherm + puzzelschermen
WindowEvent X-knop spelscherm + startscherm
ChangeListener Spelscherm โ€” item beschrijving bij selectie

Layout Panes (min. 3 verschillende)

Pane Gebruikt in
BorderPane Alle schermen
VBox Startscherm, spelscherm, puzzelschermen
HBox Spelscherm (knoppen), puzzelschermen
StackPane Winscherm (Canvas + overlay)

Overige vereisten

Criterium Status
1ร— van Scene wisselen โœ… (Startscherm โ†” Spelscherm)
1ร— van Stage wisselen โœ… (popups: Help, Highscore, Puzzels)
Menubalk bovenaan โœ…
Gegevens lezen uit bestand โœ… (spelregels.txt)
Gegevens schrijven naar bestand โœ… (highscores.txt)
Applicatie mag NOOIT crashen โœ… (exception-audit uitgevoerd)

โš ๏ธ Veelvoorkomende problemen

Probleem: BUILD FAILURE bij clean

De app draait nog op de achtergrond in IntelliJ.
Oplossing: Stop eerst de lopende applicatie (rode stop-knop in IntelliJ) voor je opnieuw compileert.


Probleem: Geen geluid

De audio-bestanden ontbreken of staan op de verkeerde locatie.
Oplossing: Controleer of de map src/main/resources/audio/ bestaat en alle .mp3-bestanden bevat. Bij een verse clone worden ze meegedownload vanuit de repository.


Probleem: JavaFX not found of Error: JavaFX runtime components are missing

Je probeert de .jar rechtstreeks te starten met java -jar.
Oplossing: Gebruik altijd mvnw.cmd clean javafx:run (Windows) of ./mvnw clean javafx:run (Mac/Linux). Maven regelt JavaFX automatisch โ€” geen aparte installatie nodig.


Probleem: JAVA_HOME not found

Java is niet correct ingesteld als omgevingsvariabele.
Oplossing: Installeer JDK 21 en zorg dat JAVA_HOME verwijst naar de installatiemap. In IntelliJ stel je dit in via File โ†’ Project Structure โ†’ SDK.


๐Ÿ‘ฅ Auteurs

Naam Rol
Borja Cools Model / spellogica (kdg.model)
Farok Bugri View / GUI (kdg.view, geluiden, animaties)

๐Ÿ“„ Licentie

MIT Licentie โ€” vrij te gebruiken voor educatieve doeleinden.


๐Ÿซ Opleidingsinstelling

Karel de Grote Hogeschool
Programmeerproject Java (DS2) โ€” academiejaar 2025-2026

About

EsscapeRoom project.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages