Skip to content
Austin Van Braeckel

Transient

A 2D platformer I made from scratch in Java in 2019. Fair warning, it isn’t easy! You can play it right here in your browser, or download it to play on your computer.

DownloadFor Windows and macOS · Needs Java 10 or later
Transient title screen with a level select menu beside gameplay scenes of a character platforming through icy caverns

Play in browser · about 40 MB

Runs in your browser, no install. Built with CheerpJ.

How it plays

You’ve got a bow, a sword, and a timer that’s always running. Your goal is to reach the portal before time runs out, and your score depends on how fast you were, how much damage you took, and how many gems and enemies you collected along the way.

Most of the fun is in the moveset. Strong shots hit harder but take longer to draw, and quick shots only work in midair. Your sword has light, medium, and heavy attacks, and each one is slower and stronger than the last. The flash step is a dash that makes you invulnerable while it lasts, and if you time it right with a glide, you can reach places you otherwise couldn’t.

Four levels

  • Level 1, Cavern Chaos. Full of secret passages, with gems hidden behind them.
  • Level 2. This one is mostly about fighting.
  • Level 3. This is the hard one! You can only finish it by using the advanced movement tricks.
  • Bonus. No enemies, just falling targets to shoot. Once you hit the last one, the exit portal appears.

Controls

It’s keyboard-only. In the menus, use the arrow keys, Enter, and Backspace. In the browser player, press Tab to leave the game and get back to the rest of the page.

Move
←→
Jump
Space
Glide
Ctrl
Flash step
Shift
Sword: light, medium, heavy
ASD
Quick shot (midair)
Q
Strong shot
W

Under the hood

Everything is written in plain Java using Swing and AWT. A small state manager switches between fifteen different screens, from the save select to the game-over screen. Each level is a tile map stored as a CSV file, with separate layers for what you see, what you collide with, and the secret areas. The music is MP3, decoded with the JavaZoom libraries, and four save slots each keep a high score for every level.

The hero and slime sprites (the ones you’ll spot around this site, too) are based on rvros’s free Animated Pixel Adventurer and Animated Pixel Slime. Thanks, rvros!

Running it

The player above runs the original game JAR right in your browser using CheerpJ, which is a Java runtime compiled to WebAssembly. The only change is a small fix to a sound-effect loop that hangs in the web runtime. If you’d rather run it on your computer:

  1. Download the zip and extract the whole folder.
  2. Double-click TRANSIENT.jar. The first load takes about ten seconds.
  3. Keep the .jar inside its folder, since it loads the levels and music from there. If you want to launch it from somewhere else, make a shortcut instead.

I left my own save file in there, so see if you can beat my score!