On this page I gathered some of the stuff I worked on in the last few years (beginning from shortly before starting university).
Spectacular Shatter Buddies (löve2D) – shatterbuddies.net
I’ve been a huge fan of Super Smash Bros. Melee for a while now, but it is relatively hard to get your friends into it due to the high technical skill barrier, requiring many hours of training solo to start experiencing the real game. Therefore I decided to try my hand at making a game that captures the spirit of Melee as much as possible while also making it a little more accessible and adding the modern multiplayer features that are sorely missed nowadays. The game is already in development for about a year my biggest project so far. If you are a Smash-fan and want to talk about it or try it, please join the Discord server or contact me directly! If you are interested in animations, music or sound effects, I’d love to hear from you too.
NGN (C++11, OpenGL 3.3)
NGN is a game (just graphics for now) engine I’m writing and it’s mostly intended for game jams, but it should be usable for projects that are a little bigger as well. I’m adding something every day, so that I will not go into detail about it’s features here, but you can have a look at the GitHub to find out my current/next todo and what is already in there. The Screenshot on the GitHub is regenerated every time I close my test program and the image on here is also updated regularly (it’s directly linking to the GitHub) so this is the most current insight into the current state of the engine.
SudoHack is a bullethell roguelike featured in a number of blog posts on this blog. I started it in December 2014 and worked on it almost full-time until about April 2015, until university demanded a lot more attention and I had to hibernate it until December 2015. Then after working on it again I realized that I somehow lost track of the vision for this game and I had to stop and just think about it for a while. After finishing my Bachelor’s degree I wanted to continue, but somehow never recovered my initial intention for the game. I still like what the game was, so I’m sure there will be more iterations of SudoHack.
This is the oldest project on the list. I’ve worked on it for about 6 months (partly while still going to school) and it started out of the growing, but now faded trend of tower defenses. While starting university it quickly lost it’s appeal, but it looks nice and it’s 3D, so it is listed here.
Screwdriver (löve2D) – Video, GitHub
To supplement the awesome Tiled map editor, I decided to build an editor for non-tile based games. It is meant to be extended for each different game that one wants to build levels for. In the end it was not used for the game jam it was initially built for, but I look very much forward to use it in future projects.
andross (Lua, löve2D)
From the GitHub page: “andross is a Lua library for 2D skeletal/bone animations. It provides different backends, where a backend for löve is already provided. There is also the possibility to implement different importers, where an importer for the DragonBones format is already provided as well. Originally it is written as a runtime for the Cutout Animation Tools plugin for Blender, so that there are still quite some compatibility issues with files exported by DragonBones itself.”
kraidGUI is a framework made for making GUIs, with a default implementation of a dark theme and a löve2D backend, though a different one can easily be plugged in.
jprof (Lua, löve2D)
Usually Lua programs are profiled by setting hooks using the built-in function debug.sethook, but sadly these hooks are not reliably called in luajit, which makes most profiling libraries for Lua not usable in the current version of löve.
jprof is a semi-makeshift solution for profiling löve applications with some extra work, but while also providing no significant slowdown while profiling.
Frontdown is an open source backup program, written in Python 3.5, that uses hardlinks for space efficient, versioned backups.
Möhre (Python & PyQt & PyAudio & OpenGL)
A node based software synthesizer for generating instrument samples or sound effects I worked on with my roommate Jonas Lieb.
This was a 2D multiplayer shooter (with basic networking) taking place on rock formations in space with very high gravity (see the blog post & video!). We did this during a weekend and I am currently working on an editor and collecting some ideas to turn this into a real project.
Metroidlike (löve2D) – Video 1, Video 2
I started a little “engine” (with normal mapping and lighting (dynamic and some cool global pre-baked lighting) for a potential Metroidvania I wanted to make. But my ideas were too vague and I’m still not sure what exactly I wanted to do there.
Game Jam Games
(PL)ANT LIFE (löve2D) – Video
We made this as a 4 man team (programming by me and Markus Over, art by Lukas Schnitzler (see also TerminationShock, Falling Nukes and Running People and SudoHack), music/sound done by Philipp Koerver) for Indie Speed Run 2015 with the themes being “rebuilding” and “ants”. The game is about the player (playing the plant) trying to regain it’s former majesty by managing resources and defending itself from foes cohabiting the forest. We reached the finals of Indie Speed Run with this project, after being picked by Jason Rohrer!
Made for LD37 with Raphael Willerding, who created the artwork. Since recently I spend a lot of time thinking about skillful movement in video games (and that I observe it as slowly being less prevalent), I decided to make a game about maneuvering a single room (theme: “one room”) with non-trivial movement options that can be used creatively. The options included seem to be very similar to some in popular Quake mods like Defrag, which I was not aware of beforehand, but was pointed to by a friend during testing, so the game is named Quark (german for “curd”, often used as “junk”) to pay homage. I’m very happy with the result since we discovered how deep the mechanics actually were by constantly finding new tricks and combos. Sadly it is not as accessible as game jam games usually ought to be, since the time needed to properly use these mechanics is more than a few minutes (close to an hour I’d say). But I really enjoyed the experiment and plan to do more of this in the future.
TerminationShock (löve2D) – Video (astronaut), Video (spaceship)
Made for Spielmarmelade 2015, a game jam me and two fellow students organized at my university RWTH Aachen. A brief description of the setting and the gameplay as well as videos and screenshots can be found on the GitHub page. All in all I’m very proud of this project, even tough we couldn’t manage to finish it. On the graphics programming and art side this is certainly one of the better game jam games I’ve seen.
Falling Nukes + Running People (löve2D)
Made for Global Game Jam 2015. A game about escaping impending doom in the form of a nuclear missile impact as a competitive local multiplayer platformer. Also highlighted as an “oustanding project” here.
Per Torpedum Ad Astram (löve2D) – Video
I deliberately tried to make the worst game for TAG Jam, but won it in the end with this game. A game about flying a pirate ship in the sky and defending against laser shooting kittens inspired by one of my all time favourites, Starfox.
Bat Sight (Unity)
This was my first project using Unity, made for Global Game Jam 2017 in the Cologne Game Lab. The theme was “Waves”, so we made a game in which you play a bat, that is flying around at night and can only perceive it’s surroundings using the reflection of sonar waves in the environment. We also put significant attention in to proper support of Google’s Daydream VR, thankfully without much technical overhead, thanks to Unity. I didn’t really know much about Unity at that point but am now very much convinced of it’s power and ease of use. During the Jam I mostly worked on the controls and the sonar shader.
This was made for Ludum Dare 24. The theme was “Evolution” and in this game a fungus (a cellular automaton) is spreading across randomly generated levels, taking over walkable space and turning it into breeding grounds for evil creeps. The fungus has to be destroyed before it gets out of hand while dealing with said creeps that would prefer you to rather not do so.
Cardiac Murmur (C++ & own engine “Kiwi”) – Video
Made for Global Game Jam 2013. The theme was the sound of heartbeat (the actual sound). In this game you use your heartbeat to unveil hidden information and display the true feelings and thoughts of the characters around you. Rather pretentiously pointing to issues of our peers that often stay hidden to us, because of a lack of genuine attention.
Scavenger Hunt (löve2D) – GitHub
Made for Global Game Jam 2016. A two player local competitive multiplayer game on the theme “ritual”. In this game both players play a serial killer that on their killing spree are hindered by their compulsive tendencies to perform certain rituals inbetween killing people. The lists of rituals to complete are randomized each time and both players race for their completion. The theme gave us some trouble, so the game sadly has a relatively generic and blunt setting, but in the end it turned out to be a solid 20 minutes of fun for two bored people sitting at the same computer.
Zombie Salvation (C++ & own engine “Kiwi”) – Video
A realtime strategy game made for “You are the enemy”-Ludum Dare where you have to coordinate a zombie invasion of randomly generated towns.
A very bad simulation, but a fairly fun game about being a flight coordinator. Made just for fun in a 48h marathon with my roommate Jonas Lieb.
Other Stuff (mostly ‘finished’ as in usable)
A printf function for löve with more features, such as color changing inside the text, image insertion with proper line breaks and a neat interface for custom directives.
A Python script for distributing and packaging löve projects.
A library for gameplay recording and playback with minimal code changes (providing a deterministic update loop) of which I wrote about in a blog post.
This is a visualization program and an implementations of different methods for raycasting in 2D grids, made for a blog post about exactly this topic.
An editor for löve’s particle system.
Modify assignment (+=, -=, *=, /=) in Lua (using a custom package loader).
A very small tool for making SDL gamepad mappings for löve games.