Category «Videos»

Ray-caster – an experiment

I participated in a Kajam, which is an regular-ish game jam hosted on with different hosts. If you remember classic Ludum Dare, this is the equivalent to a Mini Ludum Dare, where hard rules like ‘everything must be from scratch’ or the weekend time-frame are much more relaxed. The theme of this particular Kajam, running the whole January 2021 and hosted by toasty, was “make a game based on ray casting”, and one could interpret this any way possible, but of course the basic idea is to get your hands dirty and actually try to create a ray-caster. If you don’t know what that is, the most prominent example for a ray-caster is Wolfenstein3D from 1991, back when there was no 3D hardware for PCs.

Wolfenstein3D, by id Software

My entry for the jam became a ray-casting engine with a very rudimentary level editor, or a sandbox if you’re generous. I had some gameplay ideas, but as I could not work fulltime on the project, and most of my experiments didn’t result in anything playable, the state for now is that there’s just no game. Yet for me, creating a ray-caster, based on tutorials on, was a feat in itself, so I still wanted to submit it. With only one weekend left I decided to make it a “playful” level editor - meaning the editing (placing walls, changing textures, resizing the rooms, etc.) happens inside the “game” in first-person perspective. While this is actually not really an efficient way to create a level, it definitely makes it a bit more interesting and fun.

Textured walls, the first highlight

I utilized haxe, Kha and zui for this project. The first two I already tried for another software rendering project - the “Ray Tracing in a weekend” version I did 2 years ago. So I knew Kha could be used to just draw some pixels (probably grossly under-using this framework), and I like how it supports virtually every platform. The latter was a life-saver for me because the web version turned out to be not ‘compatible’ with my input method (as locking the mouse cursor always is a risk in browsers). But the Windows build turned out fine, after I had to fix a surprising bug which switched the textures’ red and blue channels. Zui, the go-to solution for tool GUIs for Kha, was relatively easy to understand (after quite some tinkering with the elements), but unfortunately it doesn’t feel as powerful and flexible as the Immediate GUI I know from Unity. Still, it was much better than nothing, and helped me to add edit functionality quite easily.

Final (jam) version of my ray-caster, with editor

Features of my ray-casting “engine” are, for now:

  •  textured walls, floors and ceilings
  • 3(!) block layers (bottom, center, top)
  • sprites (for the center layer only)
  • more or less correct display of infinite wrapping levels
  • collision with walls

It also supports different wall textures for each block side, but this feature isn't shown in this prototype unfortunately, because I had no time to add an editor mode for this. As I have a lot of overdrawing (mostly thanks to the top and bottom block layers) the performance is worse than it could be, and with infinite wrapping levels fps get low very fast as soon as you have a bit more sprites visible at once. Still, it’s good enough for me, because I do not target DOS machines like some of the more impressive entries of the Kajam do.

Be aware that YouTube videos try to set cookies and contact Third Party servers!

Most pictures (textures for the walls, and five of the seven sprites) were pulled from This is also only rudimentary, as there is no game; but I expected to use photos for the environment from the beginning anyway, for whatever game I would do; I am still inspired by Ultima Underworld II in this regard.

Ultima Underworld II, by Looking Glass Studios

While my use-case for the engine is not necessarily a dungeon crawler, I definitely would like to repurpose it for another jam game in the future. The biggest feature missing right now is level saving and loading, which I should add in any case. Other than that, the gameplay will probably decide what the direction is going to be.

If you want to try the Alakajam version of rc-test (I didn't have any use for a better name), don’t forget to read the control instructions on the entry page. And check out voxel’s excellent RAYKA!

Spielgefährten, now live and in color!

The corona virus affects us all, in one way or another. Although the Rat King is a small team and there is no need for us to work at home now, we still feel the effects of the lock-down. In order to get rid of the uneasiness a bit we dusted off our Spielgefährten podcast, where we talk about games and game design.

This time we did a (German) live-stream on Twitch about Star Trek: Deep Space Nine: The Fallen, a third-person shooter from 2000. We did a poll on Twitter beforehand, asking which character we should play (you can choose between Sisko, Worf and Kira). It was more popular that I'd thought it would be.

For over 2.5 hours we played as Kira shooting a lot of cardassians and talked about The Fallen, it level design, a bit of background, and other things. You can (re)watch our Let's Play here.

Be aware that YouTube videos try to set cookies and contact Third Party servers!

A week later now we want to do another live-stream; maybe even making it a habit and doing it every Wednesday. In any case, this time we will play some multiplayer games, local coop to be exact. You can choose between Overcooked, Out of Space and Lovers in a Dangerous Spacetime - but I am sure we will play more than one game. A bit of Spheroneers will be there to, probably.

So if you speak German and want to talk about games, visit our Twitch channel on Wednesday, 7pm (Berlin time). We also have a Discord!


The Global Game Jam 2020 marks the seventh time the Rat King participated in this world-wide event of game-making and game-playing; and it is the second time we hosted the event in our home town; in the Designhaus Halle to be exact. (Before that, we took part at and/or organized the location in Leipzig.) So this is a sacred tradition for us, as game developers and as creative people in Central Germany, where unfortunately not a lot of other game studios reside. But maybe, peu à peu, we can change that this way.

Even though our GGJ location in Halle is pretty small - we had 13 jammers staying till the end - the six games made for this year’s theme Repair are all wonderful. I especially want to highlight FixItPainter, Interdimensional Matter, RoboRescue, SpaceBuddyRepair and Super Smudge! (The last one was extra special, as it became a game show with host and trophy in the end - another proof that not every team needs a programmer!)

Our own game, Spheroneers, is a local co-op multiplayer game where the players control two to four engineers; they have the task to find a sphere which contains an (embryonic) alien creature. Then they have to roll the sphere through the rooms, protect it from holes in the floor and from dangerous robots, and also use it for door switches. To ultimately win the game the group of spheroneers need to get to the final teleporter that sends the sphere home. We created a video that showcases the full gameplay of our GGJ prototype:

Be aware that YouTube videos try to set cookies and contact Third Party servers!

As usual, not everything we envisioned got implemented (only 48 hours, after all!) - still, we are pretty proud of the end result. In fact, we think we want this to become a full game, as it was fun not only to play, but also to make. It became a very dynamic experience, as the players have to destroy and repair things (like walls, floor tiles, and of course the robots) all the time. The GGJ theme really upgraded the concept by adding a lot of interactivity and hilarity.

So if you have some time, and friends, we would be grateful if you could have a look at the game over at, and give it a test-drive. We eagerly await any kind of feedback, either here in the comments section (if this one is closed, use, or in our Discord. (If you don’t have friends, Spheroneers can also be played alone, but it might diminish the experience a bit. Find some friends!)