About Tom Rijnbeek (twitter: @tomrijnbeek)


Ludum Dare 34
Ludum Dare 33
Ludum Dare 32
Ludum Dare 30
Ludum Dare 29

Tom Rijnbeek's Trophies

Tom Rijnbeek's Archive

Dungeon Hunter Timelapse

Posted by (twitter: @tomrijnbeek)
Sunday, August 30th, 2015 4:17 am

The timelapse for my compo entry: Dungeon Hunter

Dungeon generation is a thing now

Posted by (twitter: @tomrijnbeek)
Sunday, August 23rd, 2015 6:41 am

It took me longer than I wanted to spend on it, but I think it was worth it. The final algorithm was a lot simpler than the other things I tried. It might not be perfect, but it will do for this Ludum Dare.

(click image for animation)

Day one – the monstrosity

Posted by (twitter: @tomrijnbeek)
Saturday, August 22nd, 2015 3:54 pm

Day one is done and I am not unhappy with the result. I had a bit of a problem coming up with a good concept, but I kept coming back to the same idea. I was not convinced by it, but it was impossible to get my mind off it. Because of not being convinced by the idea I had some struggles getting things to work, but once I had a simple AI going and had to actually run away from adventurers trying to collect my spoils, I actually saw things coming together a bit.

Anyway, I actually have sort of a playable game already. This was exactly my goal: get something playable the first day and do all the polishing on day two. The most important tasks for tomorrow will be handling the game state nicely (“Debug.Log(‘You lost’)” is not gonna cut it for the final version), writing a bit of a UI and tutorial and of course making proper graphics.

I had a bit of a scare about an hour ago when the game suddenly stopped running, even on older versions in Git, right at the point where I said to myself “enough for today, let’s make my day one builds”. Of course Unity thought this to be the best time to teach me about script execution order being completely arbitrary. That’s what happens if your code turns into this monstrosity of ugly code.

Either way, with that fixed, I am going to call it a day. There are probably several people that are going to work until deep in the night using some Monster energy (see what I did there!?), but I am taking it relaxed and easy today. I don’t think I have the killer idea that’s going to win, so I might as well take an easy pace.

If the animation above is not enough, the day one builds plus instructions can be found on my personal blog. Good night to you all!

Run, monster, run!

Posted by (twitter: @tomrijnbeek)
Saturday, August 22nd, 2015 9:37 am

So I have been making some good process on my game. The basic game state and mechanics work. There’s a lose condition and an implied win condition. I wrote a very simple AI (which took me a lot less time than I anticipated) as well. This means that all the building blocks for the game are there…

Run, monster, run!

Now it is time to give the player a few more tools to play around with in the game. In this game you are being hunted by some ambitious adventurers (think D&D style) and you have to stay ahead of them at every step to stay alive. You can kill them by attacking them from behind, but if they spot you first you better run, because a heads-on fight you will definitely lose.

I am looking in making the game have a bit more depth by allowing you to set traps and maybe even make small changes to the dungeon by blocking doors (adventurers can still open it from the side you block it though) and such. I am also hoping to make different kind of adventurers. A rogue might be able to look a bit further ahead and detect traps, a mage might detect you even thought a wall and a charismatic warrior might be able to call close by adventurers to help.

We will see how far I get, but if my schedule holds, I should have a playable version by the end of today. Which means a full day for cool extras and polishing!

Monstrous beginnings

Posted by (twitter: @tomrijnbeek)
Saturday, August 22nd, 2015 5:38 am

After a bit of a struggle with figuring out a concept that fit with the theme, I decided to go with the idea I kept circling back to. I don’t want to give away too much yet, but it will involve a D&D party and lots of sneaky sneaky stabby stabby (TM). Currently I am setting up a basic infrastructure to map out dungeons with. The player (monster) can already move around.


The next step is to add some antagonists (protagonists? this theme is confusing) and then the gameplay programming will commence.

As a small side note. Yesterday I posted an article on my personal blog about preparing for the Ludum Dare, so if you’re still in for some last minute tips or just interested, check it out over here.

Obligatory “I’m In” post

Posted by (twitter: @tomrijnbeek)
Thursday, August 20th, 2015 12:20 pm

As opposed to the last few times, when the Ludum Dare couldn’t be scheduled worse for me, this Ludum Dare happens exactly at the right point. No obligations and projects to worry about all weekend. It is without doubt that I can say: I’m in.

Just like the last few times I will be using Unity. I’d love to make a 3D game for once, but with my non-existing experience in 3D programs, I am delaying that for another time. I will be using Photoshop for sprites, and online tools in combination with GarageBand for sound and music.

I used to do livestreams, but last time I did not stream and for some reason I ended up with something better. I am not sure yet if I will be streaming my development this year. I am thinking about doing short stretches on livestream, but it depends if I can figure out streaming software on OSX. I might do a double-stream with a friend though.

I will be making a timelapse this time around though. I have never done one before and I think it’d be cool to try.

This year I will also try to hang around in the IRC a bit more, just to see if that makes it even more fun :)

I hope to see you all this weekend; I am looking forward to playing your games.

Better late than never – Ludum Dare #32 Post Mortem

Posted by (twitter: @tomrijnbeek)
Friday, May 15th, 2015 3:02 pm

Usually I am quite early with writing my post mortems, but between work, deadlines, and of course more game development, I didn’t really have the time to write one. Frankly, I don’t really have time either way, but writing these is always so much fun. So here we go! (more…)

Day one

Posted by (twitter: @tomrijnbeek)
Saturday, April 18th, 2015 4:49 pm

Despite initially not participating, I managed to do a lot today. These are some of the gif’s I have been posting on my Twitter today:




The goal of the game is to nudge satellites to hit enemies. Right now there is no generation of satellites or enemies left, so I guess you can only play around with the ones that are there (click the city with the mouse to fire a skyscraper). The biggest problem I am dealing with is getting the gameplay to be fun. It is a bit annoying to actually hit the satellite and hitting an enemy seems to be very impossible.

I am considering changing the controls so the player can just hold the mouse button on a satellite and then drag in the direction they want to push it. Then having a skyscraper launch to make that happen might be a bit annoying, but it makes the gameplay a lot easier and playable. If you have any ideas about how to make it work, please let me know.

I put up links to some builds on my own blog if you are interested.


I don’t have time, but this idea…

Posted by (twitter: @tomrijnbeek)
Saturday, April 18th, 2015 6:01 am

Actually I don’t have a lot of time to participate in the Ludum Dare, just like last time, but I came up with an idea I just can’t let go. That’s why I will try and use today to make a prototype of my idea, and who knows if it takes off. Talking about taking off, my idea is about equipping huge booster rockets to skyscrapers to send into space, nudging one of the satellites that is orbiting around the planet to make its orbit decay and thus hit one of the invading alien ships.

This game is supposed to be all about silly, but what do you expect with such a silly theme. With only a few hours I can really invest into this, it is going to be extra challenging to keep the feature set as small as possible, and focus on the core mechanics of the game to create something that is fun to play.

As the last time I participated, I will be using Unity. For graphics and sound I’ll just see whatever comes on my way whenever I need it. Unprepared spontaneous LD for the win!

Post Mortem 2.0

Posted by (twitter: @tomrijnbeek)
Monday, August 25th, 2014 8:18 am

Last weekend I participated in my second Ludum Dare ever. Completely different from last time, I knew what engine to use and what to expect. Does that mean everything went smoothly? No, not really. Am I unhappy? No, not really.

Engine choice: as opposed to last time, I actually decided on my engine beforehand. After seeing what some people could do with Unity, I decided to put myself over the fact that Unity uses the worst naming conventions ever (well… not really, but you get my point if you are a frequent C# programmer and know the Unity conventions) and give it a try. I only had time to do a simple tutorial and play a little bit around myself before the compo to refresh my Unity experience, so I knew in advance I would spend a lot of time figuring out trivial things. In the end, it did not turn out as bad as I expected. I got to know Unity a lot better, have learned to appreciate how it works and will most likely use it again next time.

Concept: I came up with several concepts that would cover most themes in advance. ‘Connected worlds’ was not one of them. This meant the first step was to come up with one. To prevent a situation like last time where it took a long time before coming up with a concept, I made a decision fairly simple. The concept I chose was fairly ambitious, but I deemed it possible. However, in my hurry to get started, I did not work out the concept far enough. I came across a lot of not-yet-made decisions during the implementation. I lost some time in that, which I could have prevented by thinking through the concept better. Deciding how the game should feel and where it should go to should preferably be done before the first line of code is written.

A good thing about the concept is that it is very scalable. It needs some critical mass to be playable and fun, but it is fairly open-ended and the critical mass is relatively easy to reach. As opposed to my previous Ludum Dare, this game’s fun-factor does not rely solely on level design, which means a lot less time has to be spent on generating content for the game.

Graphics: the graphics of the game suck. However, this time I knew in advance they would. I need a lot more practice to be able to make acceptable programmer art, and thus to justify spending time on making the game pretty. That is why this time I decided in advance to not spend a lot on time of graphics. Last time I spent a few hours on making sucky graphics, this time I spent a few minutes on making sucky graphics. Sounds like a fair deal to me.

Audio: while the music isn’t great, audible-music.com is a great way of getting rid of the silence and using some default drum loops in Garageband I can very easily flesh the music out a bit. I might consider practicing a bit with Garageband to make very simple tunes, as I think Garageband is a very understandable program and allows for not-so-bad-music to be made in a short timespan.

Overall: there are probably a lot of things I forgot to talk about, but I am sure the weekend as a whole counts as a very good experience. Considering it is only my second Ludum Dare, and my first time using Unity for real, I am not too unhappy about the result. I have definitely shown myself capable of applying my experience of the previous Ludum Dare to improve myself. From what I can tell, I have not made the same mistakes again. My goal is to participate in every Ludum Dare from now on — circumstances allowing. I am definitely looking forward improving my skills even more, and hopefully one day I will be able to participate competitively.

I just love to see what other people create as well. I feel very encouraged by all the people making a game in the same timespan, and the short period makes it an ideal distraction from the daily #gamedev obligations. Only by looking at livestreams and reading the updates I can enjoy myself and learn a lot of things, but participating adds another layer on top of that. Thanks guys, for being awesome.

If you are interested in my entry, you can check it out over here. Any feedback is of course much appreciated. If you wish to follow my other projects, you can follow me on Twitter as well.


Hello there, Mr. Ambitious

Posted by (twitter: @tomrijnbeek)
Saturday, August 23rd, 2014 3:07 pm

So, right from the beginning I already knew this would not not be an entry for winning, or serious competition at all. Luckily my main goal for this Ludum Dare is gaining more experience. Working in an engine I am not very accustomed to, with a slightly too ambitious concept… that sounds just like my weekend.

I still made some good progress though. Maybe not as much as I wanted, but I have made some basic mechanics in Unity, and feel more comfortable using it now. You can even already set up the trade routes, and the loading/unloading and supply/demand mechanics are already in place. I have been stuck a lot on UI stuff, which is a task I have highly underestimated in requiring a lot of time. The vehicle management is something that still has to be done, and then there is a lot of polishing, making the game more player-friendly and fun. In general I am certain I can get something to deliver in the end, but I do not know yet how polished it will be and how much it will represent the experience I wanted to create.

While there isn’t much to see yet, I decided to upload a build anyway, so you can mess around clicking things :)


(use middle mouse or arrows to move camera, left mouse to click stuff and press ‘0’ to reset the camera).

Ludum Dare 2.0

Posted by (twitter: @tomrijnbeek)
Saturday, August 23rd, 2014 3:06 am

This weekend I am participating in the Ludum Dare for the second time. I learned a lot in the last Ludum Dare, and I have made some improvements already: I prepared…. somewhat. Due to my busy schedule, I have not been able to go all out in preparing for this Ludum Dare. As I will be using Unity3D for the first time on a “real game”, I can already predict that this will not be too serious of an entry for me.

The theme was one of the few themes from the final round I just didn’t have any ideas for. So today started with picking up my list of random game ideas that has been growing for a few years now. There were some ideas there that could fit within the theme, most notably a platformer where you can switch between world at will. This would however include level design, a huge obstacle during my last Ludum Dare. I also noticed quite a lot of similar games on the website already, so I decided to do something different.

In the end, I decided to take a very simple version of something I have already wanted to do for a long time: a trading company game. As tradesperson, you want to get rich by chartering goods around. This does of course mean you are “connecting worlds”, but that’s a bit boring, huh? So, I decided to add in a special factor that changes the whole game: a portal to another world. These worlds have different supplies and demands. That means that trading between the worlds could turn out to be very profitable, if it weren’t that the single portal is of course under control of Portal Inc., which also wants to get some money out of it. It is up to you to make the best out of it, and if you make enough money, maybe you can get some scientists (or magicians, same thing really) to make you your very own portal.

The biggest problem I am having right now is the lack of a clear losing condition. This game is turning to be some sort of economic simulator, so going bankrupt is an obvious choice, but with limited time, balancing this to be challenging, but not too difficult, might turn out to be a tough job. Maybe I will get some interesting ideas along the way.


So, to finish off: yes, I will be participating using Unity3D; and probably a little bit of Photoshop, and my fellow friend Evernote.

Beneath the Surface – Post Mortem (48h)

Posted by (twitter: @tomrijnbeek)
Tuesday, April 29th, 2014 6:46 am

As promised, a post-mortem for my first ever Ludum Dare. I can’t say I did really badly, but I also can’t say I am happy with the result. I think there are a few major points that could get some improvement, so I will discuss each of them briefly.



The way I went into this Ludum Dare was pretty much unprepared. I heard that this Ludum Dare finally was not in the weekend before my finals and decided to join in if (and only if) the theme was interesting and I had a cool concept. Over the days the “Ludum Dare hype” grew a bit on me and when the theme turned out to be not what I hoped for, I still went in. However, I had not even settled with an engine yet and it took me half a day to get started. I had no idea what to do, I had to set up everything from scratch and I lost quite some time with it. Next time, I want to settle on an engine beforehand and – if necessary – make sure to have a codebase ready.


The concept

The concept I finally decided to go with was a puzzle game. I think the ambitions with the concept were spot on: the mechanics were easily implementable, the concept was extensible if there was enough time, all in all a good idea to realise in (less than) 48 hours. However, even though I did consider that level design would take time, I had underestimated the difficulty of it. Making good levels is about ten times harder as completing them and the mechanics I had weren’t always as intuitive. The problem with a concept like mine is that the game stands or falls with the level design. I didn’t design the levels very well, so I think that makes the game not very enjoyable, even though I think there is a lot of potential in the introduced mechanics.



If there was a prize for “worst graphics skills”, I would probably get it. It’s official: I suck at graphics. That is something I knew beforehand. This was the first time I ever made my own graphics (apart from boxes, circles, triangles, lines and stickmen) and I spent a lot of time on it – probably at least half of the development time. While this is not a problem per se, after all that time my graphics still sucked. I could have gotten the graphics over with in an hour and spent more time on the mechanics and I will next time try to spend more time on my actual field of expertise: programming.



This is the most important point. I am not referring to this being my first Ludum Dare, but to my experience with jamming (or prototyping) in general. I think I am a fairly good programmer, but I started on a relatively late age and I always went on with large projects. I am working on a big project right now (consider it a job if you want), and while that is really educating, I would like to set some more time apart to do small games like the ones made in the Ludum Dare. In the end, to become better, you just need to make game. Period.



I loved working on something with the feeling of community. It is so motivating to have other people do awesome stuff as well. I definitely want to do more of these, but I also want to do more prototyping myself. I just need to get more experience and get a better feeling for what works and what doesn’t. I have always been a bit sceptical of Unity, but I have seen some people do amazing things with it and it would also solve all my distribution problems, so I am definitely gonna give that a try and probably use that for my next Ludum Dare. Last weekend was such a cool and educating experience and it gave me so much insights in what I am good at and what I still have to improve on.

I am looking forward to playing some of the other entries and applying everything I have learned to my daily life. For now, I say goodbye and see you all at the next Ludum Dare!


My entry

If you want to check out my entry, you can do so over here. Currently it only runs on Windows, but an OSX build should be provided soon.


Posted by (twitter: @tomrijnbeek)
Sunday, April 27th, 2014 3:16 pm

That was it, my first Ludum Dare ever. It is over, done, finished, [insert more synonyms here]. What went wrong and what went right? That’s a good question. I don’t think there is anything that went really wrong, but nothing went really right either. I will give it some more thoughts and post a more extensive post mortem tomorrow. I just want to tell how much I enjoyed working on a game for two hours with all of you guys. Even though you weren’t sitting in the same room, it felt really cool doing this with the feeling other people are working on this well. So, good luck for those still trying to get the best out of their game for the last few hours and I am looking forward in playing some games over the next few weeks.

A screenshot of one of the final levels to finish this off:


First level

Posted by (twitter: @tomrijnbeek)
Sunday, April 27th, 2014 8:12 am

The first level of my game is done. Hopefully there will follow a lot more, but it means my game is coming along. Below is a screenshot showing the first level and probably also the main mechanic of the game.

cireon-level1I am not very happy about the whole atmosphere. The levels are missing out details and the lighting effects are very simple, but I think it is more important to get some gameplay in there and actually have a few levels to play. I have some cool ideas for later levels that should be fairly easy to add, so hopefully it will take people at least about 15 minutes to finish the games, maybe even longer if I can find the time for it.


Programmer Graphics 2.0

Posted by (twitter: @tomrijnbeek)
Sunday, April 27th, 2014 4:06 am

It’s official: I suck at drawing stuff. I knew it would be hard, but I just can’t get it right. Oh well, I have a very simple character spritesheet now that took me almost two hours to make. I am very happy with the overall style, but the execution is not very well. If time allows, I will see if I can add some shading here and there to make the image look less flat, but here is a preview of my idle animation:

After my lunch break I will try getting the animations in the game and then quickly move to loading and making levels, because time is running short.

[cache: storing page]