Category «Game Development»

Ray-caster – an experiment

I participated in a Kajam, which is an regular-ish game jam hosted on alakajam.com 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 lodev.org, 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.


(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 textures.com. 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!

A Questionnaire

For a pretty long while, we planned and prototyped a game that we called Behind Stars and Under Hills. After we pitched the first prototype to publishers, we kind of restarted the project, for which our vision was a grand one – but it also was a blurry one, a bit too blurry for a project of this kind. Behind Stars needed a relatively big open world and a cohesive story from A to Z. And while this is doable of course, we never were satisfied with the stories, settings and characters we thought of, and it was never enough. In the end we had to admit that a big coherent world isn’t something we should do, even though we liked Behind Stars a lot.

So now we search for another project, and for that we try to find a spark that will give it life. There are several gameplay mechanics we both like and want to pursue, so naturally we chose one of those. One of them is stealth, a gameplay that – in our minds – is always exciting, as the player is both powerful and in danger all the time. There is something oddly satisfying in hiding and stealing from enemies, and for us it always feels better than going on a rampage. So yes, let’s do a Thief-clone!

We even did a Spielgefährten episode about Thief!

Simply copying an existing game is boring though, and dishonourable, and just not our style. Instead we will try to make it our own game, and for that we look at other inspirations, and thinking of what we can do actually different, without diluting the stealth experience. Being inspired comes naturally (or not), but trying to come up with “new” elements, unused ideas – that’s hard, maybe impossible nowadays.

So I created a questionnaire for ourselves, by writing down questions that somebody could ask about the project or that nobody would ever ask. Here are some examples:

  • What does the game tell about you, the developers?
  • Draw the logo of the game.
  • Collectibles: what does the player constantly click on? Does it make them happy?
  • Is there any sex in the game, and if yes, will it arouse the player?
  • What does the game do differently from all the other games out there?
  • What is the most irrelevant feature of the game that still has to exist?
  • When the game is made to a movie, who should definitely be part of the cast?
  • If the game were a person, how often would you invite them to dinner?

Some of the questions are probably superfluous, some are plain bad; to be fair, the questionnaire was created spontaneously and without a lot of revision. In any case the idea behind it is to find out the shared vision, and also to get inspired by looking at the whole project from a completely different perspective. So we printed the questionnaire twice so each of us could fill it out individually. We wrote down the answers, drew some scribbles, and then talked about the result. It was interesting to see where our common ground is, but also where we would differ completely.

If you are interested in the questionnaire, for your own game project or just for a laugh, it is online on Google Docs but also downloadable as PDF, ready to print and fill out. If you don't like any of the questions, just leave them out.

And yeah – more to come about our new project soon, hopefully.

Why not a city-building game about quoting juridical text sources?

Wait, what? You heard right. With our latest project we had the wonderful challenge to fuse education with entertainment. 

So, what is CitApp about? Quoting texts and thoughts by others correctly is a necessity that aspiring lawyers will have to do quite often on their road of writing and analyzing. Especially the younger semesters devote a third of the evaluation of papers exclusively to errors in formalities. The rules of correct quotation are not hard to understand – but it’s something you might just muddle through somehow along the way, accepting point deductions or a failed exam even. *

Not anymore! Together with and for the team from the department of business law at the Martin-Luther University Halle we created a fun learning app that educates students in short lessons, workouts and a rewarding city builder all-in-one.

Citation as a city builder?

Before we came aboard, the project team – consisting of Marcus Bergmann, Ottmar Rentsch, Moritz Schwarz, Annabell Pfaff and Dieter Pfaff – conducted a well-prepared survey with about 230 of their students. In an exhausting amount of questions the team asked about learning and gaming habits including playtime, mobile games played, favorite scenarios and general player type. 

From there the team picked scenarios that would meet the requirement to motivate the students with an app that fit their habits: a game played in short segments, allowing a certain creativity and having a cozy scenario with city building elements.

Armed with this foundation and exercises for learning to quote text properly, the team looked for a game studio through an open bidding, which we as RAT KING took part in. Long story short, with our concept (based on the ideas by the project team) we won.

We did several educational games before, which are all playful and almost always have a range of player freedom while addressing complex topics like biodiversity, deforestation, climate change, people of the Bronze Age, or fake news. CitApp was therefore fascinating for us, as the two parts of the concept (quotation exercises and city building) don’t mix naturally at first glance.

A world dedicated to books

Honoring other authors’ thoughts and writings is the basis of the app, and an intention we completely embrace. The love for books and text – something we experienced especially through the mandatory book wall in Marcus’ office and his own book on the matter – we wanted to make visible through all of the game’s design. CitApp became a world dedicated to books. But the style of CitApp is only one of the elements to bring both worlds together.

In our game, the reward system for citation exercises and tutorials goes hand in hand with building your town. To collect money for your buildings you need to successfully master the exercises. To unlock new building types and rewards you need to prepare tutorials. The rewards let you expand your city and upgrade buildings.

The library is the central building and the place where the knowledge is based, where the tutorials are stored – a building that also has to be guarded against Plagiarists. Those little critters spice up the game even more: over time, Plagiarists and Bookworms will try to invade your city and need to be stopped by purchasing and strategically placing protection towers.

CitApp is the home of the Citlings (the citizens of your little empire) creating a welcoming atmosphere, where students can come back once in a while to a place of learning, next to challenges, fun and creativity.

How the footnote came into the app

While everything in game development is an interesting and often exciting journey, implementing the actual logic for the quotation exercises was especially tricky. Of course, some of them were easy to do – a simple quiz that tests your knowledge and memory is nothing new. But after this, the harder tasks are dynamically generated out of database entries, filled with dozens of details that can be part of a footnote. Author(s), noble title(s) of the author(s), editor(s), title, subtitle, source of information, place(s),... also included are informations that are superfluous, to give players an extra challenge in the higher levels. Not to forget the length of German juridical books like “Antrag zum zweiten Gesetz zum Schutz der Bevölkerung bei einer epidemischen Lage von nationaler Tragweite”. (There are longer ones.)

In any case we cannot just take the data out of the database and be done with it - it has to be processed and put in formulas (which had to be built from the ground up); and of course, several edge cases were identified during the development, which usually receive a special treatment in the code.

From the straight-forward exercise of sorting the elements of a footnote into the correct order, to the very complex  “find the error in an incorrect footnote”, where elements can both be missing or just wrong, designing and programming the learning exercises was highly demanding, and more so fulfilling when everything came together in the end. And this isn’t to say that the city-building part was any less interesting!

Working together

Creating so-called serious or educational games is never easy. A lot of them either fail to be entertaining or be actually educational. It is always challenging to find the right tone and gameplay to meet the target audience and their gaming habits to let the learning sink in naturally through gaming.

In the back from left: Ottmar Rentsch, Moritz Schwarz,
Friedrich Hanisch, Marcus Bergmann;
In the front from left: Annabell Pfaff, Jana Reinhardt

What we appreciated most about this project was how close we worked together with the university team and our testers to make sure the game does exactly that. Just to be clear: there are different learning types, games are not for everyone. Even the nicest and best-prepared tutorial found players who would rather read a book on the matter. But for those who need a little extra motivation it hopefully will become an app to fight plagiarism and procrastination.

* Ottmar Rensch, “Im Kampf gegen Plagiatoren und Bücherwürmer: Spiel-App lehrt Zitieren”, https://pressemitteilungen.pr.uni-halle.de/index.php?modus=pmanzeige&pm_id=5158