Full Tech Stack: Java, Swing, JBox2D, JUnit, Mockito, Maven
On an eerily chilly night, you awake in a cemetery. Your attempts to escape are to no avail...
At the height of your desperation, an angel descends from the sky and transforms you into a grey-haired swordsman.
“I won’t help you anymore,” she declares, before vanishing.
Now you’re alone in a nightmarish world swarming with demons. With only your blade and a precious minute to live, how long can you survive?
Fight off demons, dodge traps, and try to survive for 60 seconds in this fast-paced 2D platformer.
Supported platforms:
- Windows 10 / 11
- macOS (Intel and Apple Silicon, via a Java 17+ runtime)
Ensure Java 17 or later is installed and available on your PATH.
On Windows or macOS, you can verify with:
java -versionYou should see something like:
openjdk version "17.0.x" ...
Clone or download this repository:
git clone https://github.com/maheenmatin/WhereAmI.git
cd WhereAmIYou should see WhereAmI.jar in this directory.
From Command Prompt:
cd C:\path\to\WhereAmI
java -jar WhereAmI.jarFrom PowerShell:
cd "C:\path\to\WhereAmI"
java -jar .\WhereAmI.jarFrom Terminal:
cd /path/to/WhereAmI
java -jar WhereAmI.jarA/D– move left / rightW– jumpS– attackC– advance cutscenes / dialogueR– restart after Game Over
Win / lose conditions:
- The goal is to defeat as many demons as possible in 60 seconds
- You die if:
- A demon catches you, or
- You fall onto spikes, or
- The 60-second timer expires
This project was initially built in an academic environment supported by City St George's, University of London.
- The source code relies on a proprietary library called
CityEngine.jar. CityEngine.jaris intellectual property of City St George's, University of London and cannot be redistributed in a public repository.- For that reason, the JAR is not included here.
- The codebase assumes that
CityEngine.jaris lawfully obtained and available on the classpath.
The project includes a test suite using JUnit and Mockito for:
- Validating core game logic and rule handling (e.g. timer / death conditions)
- Ensuring key services behave correctly under different scenarios
Tests can be run via your IDE or Maven (if you have a compatible environment and dependencies configured):
mvn test





