You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tuubi cbaa1a59ee Trampolines should behave better now (#44) 1 week ago
ascii-platformer/data moved files around and removed C sources 2 months ago
docker crossbuilding to windows now works. 2 years ago
docs moved files around and removed C sources 2 months ago
scripts moved files around and removed C sources 2 months ago
src Trampolines should behave better now (#44) 1 week ago
.gitignore update gitignore 2 months ago
.gitlab-ci.yml Drop the non-functional debian build from CI 2 years ago
.gitmodules moved files around and removed C sources 2 months ago
Cargo.toml refactoring the hell out of this.... 3 weeks ago
LICENSE Add LICENSE 2 years ago fix_readme (#42) 1 week ago

Cursed Pl@tformer

Cursed Pl@tformer is a simple platformer game originally written in C using Curses and SDL2 for Linux Game Jam 2019. This is a (mostly faithful) Rust port started by Ysblokje as a language learning project, and Tuubi was later cajoled into contributing some bits.

Cursed Pl@tformer is licensed under GPLv3, except for the third-party assets which are detailed further in this document.

More information and pre-compiled binaries for the original game can be found on the Itch page:

The Rust version(s)

This version comes in 2 flavours

  • pure curses based
  • pure SDL2 based

On Linux, the curses based version runs in your terminal, using ncurses (via pancurses) for display. The SDL2 version uses our own character based graphics engine, with added support for gamepads and audio via SDL2.

On Windows, pancurses uses PDCurses as its backend, which means that you basically get two SDL2 based games, but only one of them has audio support and nicer controls.

There's no more mixing and matching of platforms, because Ysblokje got lazy towards the end.


In order to build the game you need a working Rust build environment, including Cargo, on Linux or Windows.

If you don't know how to set it all up, take a look at rustup.

Fetching the source code with git

git clone

Building and running

To build and run the game, use the following commands:

cargo build

to compile both versions, or

cargo build --bin cursedplatformercurses

for the curses based one, or

cargo build --bin cursedplatformersdl2

for—you guessed it by now—the SDL2 version.

For an optimized build without debug symbols, add the --release switch.


Since there are two binaries, cargo run will not work. Instead, use the --bin switch to run your preferred binary:

cargo run --bin cursedplatformercurses


cargo run --bin cursedplatformersdl2

Command line switches for the game engine

You can start from a level of your choosing by passing the -m switch, followed by the name of the folder containing the level data. The default levels can be found under ascii-platformer/data/.

For example:

cargo run --bin cursedplatformersdl2 --release -- -m ledge

For those who wish to create a completely new game, -g or --game also exists. Use this to point to a path containing the data directory of your game. You'll need to copy over the audio directory and the ttf font, and you'll need at least one level called menu. These aren't easily customizable for now, sorry.

Check out docs/ for instructions on editing or creating your own levels.


  • Ysblokje - Most of the work for the new Rust port.
  • Tuubi - Odd jobs.
  • Samsai - Things and stuff.


Midnight Tale by Kevin MacLeod (
Licensed under Creative Commons: By Attribution 3.0 License

CC Attribution-licensed sound effects by users:

jorickhoofd, javapimp

The rest of the included audio was originally released under the CC 0-license.

Font (for pdcurses):

Px437_AmstradPC1512-2y.ttf from The Ultimate Oldschool PC Font Pack
(c) 2016 VileR /
Licensed under CC BY-SA 4.0