CS108 Programming Project, University of Basel

PhantomHunt

An asymmetric 3 vs 1 multiplayer chase game in a haunted castle: one human survives, three phantoms coordinate the hunt.

Project overview

From playable mockup to multiplayer Java game

4 players per match
4 role-rotating rounds
3 phantoms versus one human
JavaFX client-server final build

Early prototype

Browser mockup

The first prototype was a small HTML5 Canvas game used to test the chase loop, wall collision, restart flow, and pathfinding ideas before the Java version existed.

Early PhantomHunt mockup sketch
Initial mockup sketch and concept exploration.

Click inside the frame, then use the arrow keys.

Interactive final-game showcase

Real game assets, browser-ready demo

This playable preview uses the final tile map, custom floor tiles, human sprites, phantom sprites, and ability image. The movement and chase logic is adapted for a static GitHub Pages page.

Media

Trailer and gameplay

Project trailer.
Gameplay recording of the JavaFX game.

Implementation focus

My work on the project

This personal repository highlights the parts I worked on most: networking, backend game state, lobby behavior, scoring, protocol handling, and the browser mockup.

Run the real game

Build locally with the Gradle wrapper

Build

./gradlew jar

Start server

java -jar build/libs/phantom-hunt.jar server 2222

Join as client

java -jar build/libs/phantom-hunt.jar client 127.0.0.1:2222