Een sfeervol en uitdagend escape room spel gebouwd in Java 21 + JavaFX 21 als schoolproject voor Karel de Grote Hogeschool (2025-2026).
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.
Het spel telt 6 kamers die je in volgorde doorloopt. Elke kamer heeft zijn eigen sfeer en uitdaging:
- Begin in de startkamer en verzamel wat je nodig hebt om verder te komen.
- Werk je door de opslagruimte en het labo โ let goed op aanwijzingen.
- Los de terminal-puzzel op om toegang te krijgen tot de volgende zone.
- In de controlekamer wacht een tweede puzzel rond de zekeringkast.
- Met het juiste item open je de weg naar de uitgang.
๐ก Tip: lees item-beschrijvingen aandachtig โ ze bevatten hints voor de puzzels.
- ๐บ๏ธ 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
| 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.
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.
Via Winget (Windows 10/11):
winget install Apache.MavenOf via Chocolatey:
choco install mavenControleer de installatie:
mvn -versionVia Homebrew:
brew install mavenControleer de installatie:
mvn -versionsudo apt update
sudo apt install maven -yControleer de installatie:
mvn -versionsudo dnf install maven -ysudo pacman -S maven๐ก Niet zeker welke methode? Gebruik gewoon
mvnw.cmd(Windows) of./mvnw(Mac/Linux) โ dan heb je Maven helemaal niet nodig.
git clone https://github.com/Borja-cools/EscapeRoom.git
cd EscapeRoomWindows:
mvnw.cmd clean javafx:runMac / Linux:
./mvnw clean javafx:runHet spel opent automatisch in een nieuw venster.
mvnw.cmd clean compilemvnw.cmd exec:java -Dexec.mainClass="kdg.model.GameTestApp"Dit voert de ingebouwde modeltest uit en toont โ /โ in de terminal.
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
| Scherm | Status |
|---|---|
| Startscherm | โ |
| Spelscherm | โ |
| Helpscherm | โ |
| Highscorescherm | โ |
| Aboutscherm | โ |
| Introductiescherm | โ (bonus) |
| Optiescherm | โ (bonus) |
| Winscherm | โ (bonus) |
| Verliesscherm | โ (bonus) |
| 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) |
| 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 |
| Pane | Gebruikt in |
|---|---|
BorderPane |
Alle schermen |
VBox |
Startscherm, spelscherm, puzzelschermen |
HBox |
Spelscherm (knoppen), puzzelschermen |
StackPane |
Winscherm (Canvas + overlay) |
| 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) |
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 mapsrc/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
.jarrechtstreeks te starten metjava -jar.
Oplossing: Gebruik altijdmvnw.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 datJAVA_HOMEverwijst naar de installatiemap. In IntelliJ stel je dit in via File โ Project Structure โ SDK.
| Naam | Rol |
|---|---|
| Borja Cools | Model / spellogica (kdg.model) |
| Farok Bugri | View / GUI (kdg.view, geluiden, animaties) |
MIT Licentie โ vrij te gebruiken voor educatieve doeleinden.
Karel de Grote Hogeschool
Programmeerproject Java (DS2) โ academiejaar 2025-2026