Whistle Your Way Through A Cave in: Hyper Bat Simulator 2018!

A few weeks ago was the end of January, and many game developers know what that means: It’s time for yet another Global Game Jam! The GGJ is a world-wide event with hundreds of locations where people meet for 48 hours of rapid game development.

This year’s theme was “Waves”, and I found myself with a team that I’ve never worked with before – which is always challenging, but also fun! The development went nearly without any hitches and I’m really content with our result:

In the game, you are a bat flying through a cave looking through the bat pups so you can go hunting. The cave is dark and the pups are tiny, so you use your echolocation to see and hope the pups answer. You steer with the gamepad – but to use the echolocation, you have to whistle into a microphone! (Like the title suggests, this is definitely the latest in bat simulation technology.)

Here’s a video of our presentation after the GGJ (starts at 0:29):

Global Game Jam Berlin 2017 Presentations – Bat Simulator 2018


And a small trailer video Emily and Caroline made:

Hyper Bat Simulator 2018


The game and its source code is available at its Global Game Jam entry page.

Before I talk a little more about the development, here’s the team:

We also used some assets:

Okay, on to the development! This time (and very atypical for me), the concept was rather simple. A single player game with no really hard development challenges – well, that leaves more room for polish, and sounds just right for 48 hours!

This was also one of the few times where the game design didn’t change much over the course of the weekend. Everything just worked. In the end, we actually finished the game with all the features we wanted! We even removed some features we already implemented because they made the game less accessible and weren’t as much fun as we had imagined: Dizzyness when the bat crashed into a wall, and not being able to call out to children when there’s a wall in the way. We also wanted to add monsters that follow sound, but in the end the game turned out to be plenty fun without the added complications, so we decided not to go that route.

The microphone implementation was incredibly easy, more so because this isn’t my first microphone controlled game. I just had to sample the input volume and detects peaks.

First I wanted to do the echolocation waves via shaders, but that that would’ve taken some time. Then I remembered something I learnt about in a Pluralsight video tutorial just a few weeks ago: Light Cookies, which allow you to put shadow masks on Unity3D lights. The final echolocation waves are just multiple spotlights with a circular light cookie mask shining from above, and the angle gets progressively bigger. That way it “runs” across obstacles and scales walls and stalagmites instead of just looking like it’s two-dimensional shape projected from above. The effect is a bit hard to describe, but you can see it quite often in the videos linked above.

I am really happy with our result! Thanks a lot to my team for being the best team – and to the location organizers and the Global Game Jam team who made it possible for us to jam without worrying too much about such mundane things as work space or food!

Critical Hit 2015: CloudKeeper

Continuing the series of Critical Hit 2015 prototypes, here is the next one: CloudKeeper. Again, we had two weeks and a completely new team of four people to make another experimental game. Our discussions quickly arrived at magic as a theme and circular projections. Some members of my group had a circular projection on the floor last time, so to shake it up a bit, we wanted the projection to by on the ceiling. And thus, the idea of the magical sky creatures was born: Creatures that escaped into the heavens, and the player, a cloud keeper, has to bring them back.

I had a lot of fun with electronics in my last project, so I wanted to do more of that. And I still had a Touch Board that I never had time to use so far – an Arduino with capacitive sensing, which, among other things, can do this:

Distance capacitive sensing! (photo taken from the Touch Board kickstarter campaign)

It worked quite well for very low ranges (<4cm), which was suitable for our purposes. At first we tried to make one crystal which players can touch from multiple directions, but players used to swirl their hands around it like it was a crystal ball and that didn’t make for very predictable controls. In the end, we settled for 5 cardboard crystals, each with only one function and aluminium foil inside. The capacitive sensing actually worked really well through the cardboard! Some crystals controlled movement, and the closer you got to them, the faster the movement got. (And not being able to see why cardboard can sense how close you get to it added a fun technological-magical aspect to the whole thing.)

Apart from that, we also wanted to have generative creatures – kind of like my Chimera Maker, but this time I also got to procedurally animate the creatures! Kailin Zhu drew them and created the crystals you see in the video and pictures below, Titouan Millet made beautiful generative cloud shaders and Peter van Haaften generative music and sounds.

Oh, and I also made the creature nest, a separate executable which showed the creatures flying away from and returning to earth, seen in the video on the monitor. It communicates with the main game via a server using the Yahoo Games Network (formerly PlayerIO). I tried to make it work with standard Unity peer-to-peer networking, but the University network didn’t like direct connections at all.

Finally, all this generativeness combined resulted in:


Magical creatures have escaped into the heavens,
and the player must sift through layers of clouds
to bring them back to the earth.

Using a set of five crystal touch/distance-sensing controllers,
the player wanders through a generative audio/visual cloud world
to catch these lost mythical beings and return them to their home.

CloudKeeper (Critical Hit 2015)


  • Titouan Millet – Programming and generative visuals
  • Kailin Zhu – Craft and illustration
  • Tobias Wehrum – Programming, electronics, and generative creature engine/animation
  • Peter van Haaften – Generative music and sound engine

The video footage was recorded by Mattias Graham and Tobias Wehrum.

This project was made possible through the Technoculture, Art and Games Research Center’s Critical Hit: Games Collaboratory and the support of Concordia University and Dawson College and financial contribution of the Ministère de l’Enseignement supérieur, de la Recherche, de la Science et de la Technologie.

“Wickie und die starken Männer Teil 2: Wiedersehen in Flake” for the iPhone

The second game in the series “Games I Made For Companies, But Never Posted Here” was for Exozet a few years ago – a port of the Nintendo DS Game “Wickie und die starken Männer – Teil 2: Wiedersehen in Flake” to the iPhone using Adobe AIR.

The port had an interesting set of challenges. The game should use the original levels and everything including player movement and enemies should be exactly like it was on the DS. Obviously I couldn’t use any of the original code directly, but it was still useful to be certain about some enemy behaviours. The level files had to be exported, converted into a proper format for the AIR game and then read back.

For that game, I worked together with another programmer. My part was almost all the in-game gameplay, i.e. level loading, platforming and implementing the player character, the enemies, the various other hazards and the pick-ups in the game world.

Here is a trailer – in German, but the gameplay is still easily understandable:

Wickie und die starken Männer Teil 2 – iPhone Launch Trailer (German)

Beer Pong HD for Android

I’m currently in the process of posting all the games and prototypes that I made years ago and never published. This post (and the next one) are special though – because the games were published, just not by me. I made those games for other companies.

The first one is Beer Pong HD for Android. Back in the days when I worked in the Netherlands as part of my studies, I made its first version (further on, other developers expanded it) with Unity for Codeglue.

It seems the original promo video is not available anymore. Here is the best video that I found (made by Androida.it). I suggest you jump to 4:16 for gameplay:

Beer pong HD per Android

What is still available is the video how the AI finds out which ball throws end up inside a cup. I didn’t just want to calculate how to hit the middle of the cup because that might look too artificial, but I still wanted to be able to predict whether a throw hits, even if multiple jumps on the table or cup’s edges are involved. Here is a video of the AI “training” and finding out which throws hit:

This is how the AI in Beer Pong HD works

(And the best part is that it takes some time and is automatic. Time for a cup of coffee – or an office sword fight. I like being a programmer.)


After I published my master’s thesis, a few people asked me about what I did for my bachelor’s thesis. I experimented a bit with controls for an Android shooter. Here is a video showing the game I did there:

Asset Credits:

Lost in the Darkness

Lost in the Darkness was originally made for the Ludum Dare 27 for the theme “10 seconds”. It was well-received, but had some flaws which I addressed in this post-compo build.

Lost in the Darkness

Find a fairy. Follow the music. Save your friends. Escape safely.

And above all: Don’t touch the darkness.

Play for free in your browser on GameJolt!

Lost in the Darkness

A game made by Tobias Wehrum.

With assets by:


Here’s a thing that I did at my last Mini Jam. I originally had this idea for the last Ludum Dare (theme: Entire Game on One Screen) and since I dropped out of that, I did it now.


Rotate the center and the bubbles coming in to connect same-colored bubbles.

Survive with as many points as possible!

Play in the Webplayer or on Android.


SnakeFormer: Half Snake, Half Platformer! (Post Ludum Dare Compo Edition)

A few months ago, I made my first puzzle game ever for Ludum Dare 29. It was well received (#16 in Innovation!) and players called it “clever” and “challenging”, but the difficulty curve was too steep. Now, I finally found the time to make a post-compo edition with more and easier tutorial levels to ease the beginning and a really hard one where you can test your mettle! I humbly present:


Snake meets platformer physics!

A short puzzle game combining two
well-known concepts to form a unique hybrid.

Play right here in your browser!
(And maybe rate it! Or share it with friends who might like it.)

Download for Windows, OS/X or Linux!

SnakeFormer – Half Snake, Half Platformer (Post Ludum Dare Compo Edition)

“But,” you might say, “only 9 levels?” Yeah, for now. I think it’s enough to demonstrate the concept well and especially the later levels might take some time to solve. I’m pondering releasing it on Android soon, and maybe, just maybe, I’ll search for a level designer and get more levels made. If you like it and want more of it, please leave a comment!





An EyeTracker Perspective Experiment

A month ago at the last Berlin Mini Game Jam, I set out to experiment and get acquainted with the Tobii EyeX which can track where your eyes are – and more importantly, where exactly you look on the screen. The obvious thing would be to use that gaze tracking, but out of ideas and inspired by Amazon Fire Dynamic Perspective, I tried to use the actual eye tracking to make the monitor behave like a window into a real-life scene.

An EyeTracker Perspective Experiment

EyeTracker Perspective Experiment

Download for Windows!

My goal was to create the illusion of actual 3D, but maybe due to my scene not being very exciting that turned out rather boring. It looked a bit more interesting once I dropped the “real-life window” idea and made it more a “choose your perspective with head movement” control by exaggerating the movement. By then, I had only half an hour left and no gameplay, so I did the obvious: I added polka and bouncing balls that shoot where you look! Maybe it could have been an interesting horror game with good assets and actual gameplay – although for an immersive perspective horror game, I would probably rather use an Oculus Rift.

And man, it’s hard to come up with good ideas for this device. While eye tracking is widely established for user testing, it’s rather new when it comes to being used in games themselves. I certainly don’t make it easier for myself with my rules for experiments with new technology:

  1. The new technology must be used for a part of the core gameplay.
  2. The benefits (e.g. immersion, precision, ease of use, unique aspects) of using the new technology over traditional technology must outweigh the disadvantages for the intended purpose.

Eye trackers seems to be more suited for passive or highly situative supporting roles – targeting, for example, seems to be easier and more precisely done with a joystick or a mouse for most purposes. But by now, I have a really cool idea that I want to experiment with next time. Can’t wait until I get a new laptop with USB3 so I can try my hand at eye tracking again!


A Light in the Darkness – Co-Op Online Multiplayer Game Made in ~52 hours

A few weeks ago, I participated in the Ludum Dare 30. The theme was “Connected Worlds”, and I thought “Hey, nevermind that I never made an online multiplayer game before, I should totally try to make one in 48 hours!” Unexpectedly, it actually turned out pretty great – you can read more about that in my postmortem if you’d like to. And below you can find the ~52 hour post-compo version with a few bugfixes and sound effects!

You are flame bearers, braving the darkness,
carrying letters and escorting travellers
through the eternal darkness between
the mountains to the south and
the sea kingdom to the north.

Overcome obstacles. Carry the torch on. Work together.

Go north. Ignore sounds in the dark.

And most importantly: Don’t let the flame die.

Send the link to a friend, and play it in your browser with the Unity plugin!

Download it for Windows, Linux or Mac!

Here is a video with clips of lots of people playing it on dvcolgan’s stream:

A Light in the Darkness – Co-Op Online Multiplayer Ludum Dare Game

Used Assets: