janw.name Personal Blog and Portfolio of Jan Wolff

Codo - The Elbow of Fate (20. July 2023)

El Codo: The Elbow of Fate

This game was mostly made in 2020 when I had a lot of time on my hands. Then I suddenly stopped having lots of time on my hands and the project got put on hold. It is a top down shooter about saving a rock star who was abducted by aliens. The main character is a wrestler with a gun. You can punch and shoot and have to fight your way through a horde of aliens. The levels are kept rather open, the basic idea being that you have to search and collect some diamonds in each level to progress.

I developed this project in C using SDL2. Development-wise a lot more effort went into the game’s engine and the whole backend details than the game itself. But I’d learned a lot about compiling native stuff for the web via Emscripten and even got to contribute a tiny thing to the Emscripten project in the process, which was nice. Additional details include a custom, compressed format for the game’s levels and a system to smoothly and automatically switch from keyboard+mouse to gamepad controls.

You can play the game either directly in the browser or download a compiled version for Windows or Linux. I don’t plan on open sourcing this, because its mostly uncommented C11 code. If you ask nicely I might reconsider, but don’t say I didn’t warn you ;P

Controls

Keyboard

  • Moving: WASD or Arrow Keys
  • Shooting: Left Mouse Button or Space
  • Punching: Right Mouse Button or Shift
  • Pausing: Escape

Gamepad

There is also gamepad support! The basic assumption is that you use an XBox Gamepad or equivalent. i.e. a pad with two joysticks.

  • Moving: Left Joystick
  • Shooting: Right Joystick
  • Punching: A Button
  • Pausing: Start Button

Toubleshooting

Graphical issues

There are a few commandline options you can try:

--no-vsync disables VSync and can possibly mitigate some issues. If not, you can try --no-vsync --force-sw, which forces usage of software rendering. The game is pretty easy on the hardware, so this should not be a problem performance wise unless you’re running this on some early 90s machine.

Gamepad is not detected

Make sure to start the game with the gamepad already plugged-in/connected.

Where is the savefile?

On Windows: The savegame is stored in share/codo-data/user/, next to the executable.

On Linux: Its either in $XDG_DATA_HOME/.local/share/flying_elbow or $HOME/.local/share/flying_elbow, depending on whether $XDG_DATA_HOME is set.

On the Web: An IndexedDB entry is used to simulate the filesystem. The file is stored there.

Credits

pipo tileset

font

Epilogue

Anyways, thanks a lot for downloading and hopefully playing this game! If there’s something you want to tell me, drop me a mail at: slartibartfast@klockenschooster.de