Yet Another C++ Coroutine Tutorial


I know, everyone has written one. My grandma recently published hers, after telling me how bad she finds the one her hairdresser wrote. I suspect many people have similar experiences of pouring a dozen of these resources into their heads and still wondering how the HELL these fucking things work and when they finally figure it out, they want to write it down too - “properly” this time. This is exactly what I will do in this blog post as well. ... Continue reading

Why Is There No Invisible Database?

In this post I’ll write about the exploration of an old idea of mine, which didn’t lead very far, so it might not be the most informative piece. If you have time to spare, go ahead. This will also serve as a reminder to myself when I revisit the idea in a few years.

The Idea

For a few years I have been thinking about a database that requires little to no explicit storage and loading. I imagined simply marking a std::vector for example as “in the database” and it would all just magically happen. ... Continue reading

Ray Casting in 2D Grids

Ray casting is used in many different areas of game development, most commonly for visibility, AI (often for visibility though) and collision detection and resolution. If you are making a game, chances are you need ray casting somewhere. I started this blog post over a year ago, but decided to not write it up fully and publish it, since I thought that it might be a little embarassing, since most if it is too trivial. ... Continue reading

Preparation for Indie Speed Run 2015 - Screwdriver, SparklEd, Lighting

In preparation for Indie Speed Run 2015 (which went well and for which I will post our game when the voting period starts) me and a long time programming buddy, Markus, decided to prepare by building a handful of tools that are going to make some things a little easier. We find ourself discarding the same ideas time and time again, because we don’t deem them feasible in the often severly limited amount of time or not discarding them but spending too much time on them, so we decided to prepare them beforehand. ... Continue reading

Old Videos Fixed

Some of you may have noticed, that most of the posts tagged with “from old blog” have broken videos. It turns out that it is not super easy to get a high quality video from unpublished blogspot blog posts (that’s what I did with my old blog), but I managed to find most of the old ones. ... Continue reading

SudoHack update & Replay system

So I really have to write another blog post. 120 of the 173 total commits for my Git repository have been after the last blog post and I start to feel bad about putting anything new in the game, because I should have documented all the other stuff already. ... Continue reading

Tweaking Values in SudoHack

It is fairly known that just tweaking values in a game a few percent can make or break awesome gameplay and create the difference between an iconic franchise and the joy of gameplay you often get from games that are made by some 13-year olds and uploaded for testing on a game developement board. Not that I don’t like games by 13 year olds, just that it took me a ridiculously long time to get the basic hang of making games remotely fun (I’m still very far from being good it). And let’s face it: if you are a game developer and you’re tweaking the friction that is applied to the player when the boss knocks him back using his extra-power-attack, you often stop after 20 minutes and call it a day. ... Continue reading

Exam Preparation Avoidance Game Jam

Last week Jonas and I knew that we had to start preparing for our upcoming condensed matter physics exam. Instead we jammed a little game, which should initially only take up one single day of our time, but actually took two. It’s a blatant copy of this game: Continue reading

Global Game Jam 2015 - "Falling Nukes + Running People"

Last weekend my notorious partner in crime, Jonas Lieb, his artist friend Lukas and I attended the Global Game Jam 2015 in Cologne. After watching the keynote, which was not only slightly cringeworthy and partly in a language no one on the site could understand, but also way too long and obviously tinted by Anita Sarkeesian ideology (she was also listed in the section for “Special Thanks”) the theme was announced as “What do we do know?”I initially expected something way to artsy and narrow, like one could expect from the GGJ organizers, but I was very pleasantly surprised. ... Continue reading

New Website!

I’m using wordpress on a new webspace now. This is the result! Wohoo! Because googling Continue reading

SudoHack - Bits, AI, Weapons, Movement and a Lot More Prettiness

SudoHack is a multiplayer roguelike where you and your friends, playing as computer programs, try to infiltrate a computer system. You gain “Bits” by destroying the guardian programs that are put in your way, but also lose them for every hit you take and every second that passes by. Your goal is to reach the end of the room before you run out of Bits and get destroyed yourself, therefore gaining access to deeper levels of the system, until you reach the core.

So this week really has been rather productive (sadly just regarding SudoHack. ... Continue reading

SudoHack - Enemies and Prettiness

SudoHack is a multiplayer roguelike where you and your friends, playing as computer programs, try to infiltrate a computer system. You gain “Bits” by destroying the guardian programs that are put in your way, but also lose them for every hit you take and every second that passes by. Your goal is to reach the end of the room before you run out of Bits and get destroyed yourself, therefore gaining access to deeper levels of the system, until you reach the core.

I really should have spent the last few days on university stuff, but I really couldn’t resist, I integrated two enemy types (a static turret and a “moving turret”, as it’s called in the code) and a background for the “floor”, which was previously just black. ... Continue reading


During this holiday season I started to work on a “new” project. I actually started it quite a few times, but never really worked more than a few hours on it before I lost interest. But this time I don’t just want to try a few things and code a small game, I want to know if I can finish one. ... Continue reading

The Delightful Reunification With Modify-Assign in Lua and Per Torpedum ad Astram

Jonas, who already worked on Spacewalk with me, and another fellow student of mine recently became roommates after Jonas and third said roommate spent a year abroad. Jonas and I decided to visit the Global Game Jam in Cologne in January and felt it was necessary to do some kind of warm up to get comfortable with the technology we plan on using and produce some useful code for loading Tiled (which just keeps getting better and better, geez!) maps and general boilerplate. ... Continue reading

TAG Jam #6 - Results

Hi guys! I found some time and decided to playtest/write a resumé.

First of all I found it really interesting that there are not that many multiplayer games (just one) and that one also tried to make a game without an objective. ... Continue reading

TAG Jam #6 - Time's Up!

The jam time has ended! I hope you had a lot of fun during the last 48h+! Please upload your games now and link to them in the comments below. You will then have 12 hours to fix bugs and package everything. The final deadline for uploading your games is Monday 12:00 GMT/Monday 04:00 PST. ... Continue reading

TAG Jam #6 - The Jam Time Begins!

And the second, even more special, moment has finally come too. The jam time begins!

- The Themes -
- The Rules -

The deadline is now in 48 hours, respectively Sunday 24:00 GMT/Monday 00:00 GMT/Sunday 16:00 PST. ... Continue reading

TAG Jam #6 - Themes

Okay! The special moment has come; the magic begins. No screwing around - the themes:

  • Outsider - “a person who does not belong to a particular organization or profession” / “a competitor, applicant, etc. thought to have little chance of success”
  • Drawback - “a feature that renders something less acceptable; a disadvantage or problem”
  • Affection - “a gentle feeling of fondness or liking”
(Definitions from

There they are. ... Continue reading

TAG Jam #6 - Welcome Post

Hi everyone!
Sorry for the delay, but here’s the countdown/welcome-post for #TAGJam6! I won’t be using twitter, but for all you interested in doing so, the aforementioned one is the hashtag to use. Ticktakashi pointed out that with this one TAG is celebrating it’s half-birthday (which totally is a thing)! Therefore we will have special rules and since I’m not really big on decision making, we will just include a set of two additional rules from which you will have to choose one (or more, which is two and also all of them). ... Continue reading

Metroidlike & 2D-Water & Bone-Animations - Catching Up Part 1

I have a huge list of stuff that I should have put on my blog (just to document what I’m programming and maybe have a look at the progression afterwards) and today is the day I try to catch up. I’m thinking about making big posts with multiple things I worked on, so I don’t have to create a myriad of posts today and also because some of them are related. Especially the three in this post, since they were intended to be part of the same game. ... Continue reading

BaconGameJam5 & löve


About a month ago I participated in the fifth BaconGameJam, which is a game jam that started as “RedditGameJam”, but had to be renamed due to copyright issues, so it’s the former actually unofficial official reddit game jam and now more of a official unofficial reddit game jam. To get to the point I have to mention that I wasn’t really sure what technology to use, because using Kiwi is way too stressfull since C++ is not a very productive language for very short amounts of developement time (My opinion at least. ... Continue reading

Spacewalk - Part 1

During my practical course in experimental physics I decided not to use C++ this time, but rather a language which has a way more extensive standard library and is way easier to debug. Just a language.. ... Continue reading

Feedback Effect

I played around with an old demoscene effect often called “feedback”. It probably happend to you, that you forgot the glClear (or equivalent clear screen commands) at the beginning of your renderloop which lead you to very funny results. This effect is essentially this but kicked up a notch. ... Continue reading

Global Game Jam - Cardiac Murmur

Last weekend I was attending the global game jam in cologne and I have to say that it was a really cool experience! Sadly my team mostly consisted of people from the design school this event took place in (they didn’t study game design though) and they had to take part in this to receive certain credit points or something (in essence: My team was 60% people that have never made a game, don’t play games and have no skills whatsoever to actively partake in making one) and we weren’t lucky to incorporate an artist into our team, so we essentially ended up with two programmers. But otherwise it was still very cool! I was overwhelmed by all these productive talented people and all the awesome ideas. The theme of the game jam was the sound of a heartbeat (the actual sound. ... Continue reading

Species X

I tried to make a game for ludum dare #24. The theme was evolution and I decided to make a game about some sort of species that evolves and you would have to fight. Because I was in a hurry and I’m not very good at such things I ended up with this game. ... Continue reading

First post!

Hello! I’m Joel. I’m currently studying physics in Aachen (Germany) and I intend to use this blog as a journal of the games I make in my sparetime (since the next semester starts soon it will probably take quite a while until I post again).

Continue reading