ASCII City
A first-person cyberpunk story game for desktop. Walk the city, meet its people, and uncover what lies beneath its network.
Kotlin · LibGDX · LWJGL3 · CPU-rendered ASCII perspective
Where it stands
Playable now
The city foundation. You can walk four authored maps, inspect the environment, use terminals, talk to characters, and hear the city change between districts.
Not built yet
The Kernel-Panic campaign, its choices, and persistent story progress. The story is being adapted from the campaign documents in the repository.
In the game now
- First-person movement, turning, and vertical look.
- Four authored maps:
city-alpha,water-park,nature-reserve, andcasino. - Collision for buildings, water, park fixtures, doors, and characters.
- Perspective ASCII rendering with fog, rain, animated facades, street lamps, and depth-tested sprites.
- Center-screen prompts, terminal responses, and linear dialogue.
- Ambient traffic, steam, rooftop exhaust, small street events, and scheduled pedestrians. Traffic cars are scenery; you cannot drive them.
- City and park music, rain, footsteps, and optional head bob.
Run it from source
There is no downloadable release yet. You can build and run it with the Gradle wrapper in the repository.
-
Clone ucwxcato/ascii-city. The first build needs internet access so Gradle can fetch dependencies and the pinned Java 21 toolchain.
-
Launch the game:
./gradlew gameRun -
Optional: pick a world font profile.
./gradlew desktop:run --args="--ascii-density=fine" ./gradlew desktop:run --args="--ascii-density=dense" ./gradlew desktop:run --args="--ascii-density=standard"
The window starts at 1280 by 720 and keeps that as its minimum. Larger windows scale the glyphs in whole steps.
Controls
- W S
- Walk forward or backward
- A D
- Strafe
- Left Right
- Turn
- Up Down
- Look up or down
- E or Enter
- Interact or advance dialogue
- Esc
- Cancel or close dialogue
- M
- Mute or unmute music. Rain and footsteps keep playing.
- F3
- Diagnostics. With F3 open, Tab loads the next map and C toggles the CRT effect.