A typing game where you have to type fast or die. You're running down a road, obstacles are coming at you, and the only way to dodge them is to type the right words in time.
Built in Java Swing for a university CS project (CS 2212).
You're a runner on a pseudo-3D road. Obstacles come flying at you and you have to react:
- Some obstacles require you to jump — type the "up" word
- Some require you to crouch — type the "down" word
- Some are in a specific lane — type "left" or "right" to dodge
Type the correct word before the timer runs out or you lose a heart. Lose all 3 hearts and it's game over.
The faster you type, the more points you get. Get a combo going for bonus rewards. Grab power-ups to survive longer.
| Mode | Description |
|---|---|
| Easy | simple short words |
| Medium | medium words and complex short words |
| Hard | longer and complex words (lots of z, x, q, w) |
| Endless | Never ends — gets progressively harder every 10 obstacles |
Regular levels are done after you clear 20 obstacles. Endless mode just keeps going until you die.
No build tools needed — just Java.
# Compile
javac Main.java
# Run
java MainOr just open the project in VS Code with the Java Extension Pack and hit Run.
New2212/
├── Main.java # Start here — sets up the window and screens
├── game/ # All game logic (obstacles, scoring, power-ups, levels)
├── account/ # Player accounts and login
├── wordlist/ # Word lists and difficulty system
├── Frontend/ # Every UI screen + sprites
│ └── GameScreen/
│ └── Sprites/ # Rendering pieces (road, player, HUD, particles...)
├── renderer/ # Game rendering state
└── data/
├── PlayerData.csv # Player accounts and stats (auto-saved)
└── words.csv # Built-in word lists
Word difficulty is calculated automatically based on the word itself:
- 1-4 letters → Easy
- 5-6 letters → Medium
- 7+ letters → Hard
- Contains rare characters (z, x, v, q, w) → bumped up one tier
The game's time limit for each obstacle starts at 5 seconds and shrinks down to a minimum of 2.5 seconds as you progress.
Every player gets an account. Your stats are tracked across every session:
- Average WPM and Peak WPM
- Accuracy %
- Total words typed and errors made
- High score
- Level completion history
Stats are saved to data/PlayerData.csv in real time — every update writes immediately.
There's a separate admin login on the home screen. From there you can:
- View and manage all player accounts
- Reset player passwords
- Import custom word lists from
.txtfiles - The admin password is
admin
None. Pure Java standard library — just needs JDK 11+.
Built for CS 2212 at Western University by Parth, Amal, Bashar, Omar, Ziyad, second sem 2026