Extruder – Post-Mortem

Posted by (twitter: @bitbof)
May 22nd, 2013 11:39 am

I haven’t written one of these in a while. I’ll talk about the development of my Jam entry Extruder, my guidelines, the future, and my thoughts on the Ludum Dare site.


Focus / Goal

I try to do something new in every LD to keep myself engaged (my fifth LD). This time I decided to make a game that runs on many devices, using HTML5 (Desktop, Smart Phones, Tablets). I have a bunch of experience with web apps, which was useful.

I also bought a train ticket to Berlin, to visit the Amaze Indie Connect and then work on my LD entry at the Berlin Mini Game Jam which took place on the same weekend.


Because I could only take my ~10 year old laptop with me, I had to prepare for creating only a very simple game. I was lucky with the theme pick this time!

When the theme was announced I wanted to make something with the least amount of rules, but greatest amount of depth. The usual ideals are Go, Conway’s Game of Life, and the Mandelbrot Set. Of course, it’s very unlikely to stumble over something as interesting as those. And how would you even become aware of the true depth in 2 days?



I spent my first day at the Berlin Mini Game Jam, a monthly jam held by friendly and encouraging people who allow you to work on your Ludum Dare game. This was my first Ludum Dare jamming together with other people. Though the room was pretty cold, due to the entrance door being wide open the whole time, it was still a fun and very motivating experience. Especially because after a couple of hours (twice that day) everyone presented their creations. That really pushed me to not waste too much time brainstorming and to get some gameplay going as quickly as possible. I tried out two other concepts before coming up with the extrude mechanic. The basic gameplay was working by the end of Saturday.

That day I got some feedback from people at the Jam and from some friends and family members. There is something about seeing someone playing your game in person. You can feel it when they are bored and confused, and why that is. It’s very helpful and makes internet comments look incredibly shallow. Attending the Amaze festival the day before also helped put things into perspective.

Everybody jammin away...with their coats on.

Everybody jammin away…with their coats on. Photo by Lorenzo Pilia

Day two wasn’t all that productive because I was still with family and then had to travel back to my hometown. On the train I made a couple of brainstorming sketches though. Because of the lack of time I decided to make it a Jam entry.

The rest of the development was mostly about polishing the controls, making more levels and implementing the toggling walls. At first I made all levels slowly by hand in the code. Then I adapted my level editor from LD23 to speed up that process. If I had done that earlier, I’m sure I would have come up with more interesting levels. I had more ideas for mechanics, but yanno, 3 days don’t last forever.

Audio was smooth sailing as always. I tried to make the music not too distracting this time, which can easily happen with puzzle games, in my opinion.

I finished with half an hour to spare. All in all this was the most relaxed LD for me so far, which is maybe thanks to the theme. The way I stressed out in previous LDs was unhealthy.


HTML5 Games?

As mentioned before my game runs in the browser using HTML5. Why did I go for it?

My previous games were made with Java+libgdx/lwjgl, it worked out okay, but for some the games didn’t run (on Macs). Also nowadays you have to click through a bunch of dialogues before the applet starts. Seems not all that great for something like Ludum Dare. Also you’re mostly limited to the desktop.

Then there is HTML5, it doesn’t have the greatest performance, but you can make small games. Nobody needs to install anything, it runs right away, and if you’re doing it right it’ll even run on phones and tablets. I did that by writing myself a tiny lib that handles inputs, scales the viewport, and lets everything update at 30fps (my 3Gs and old Thinkpad could still handle that). Variable framerate would have been better, but I’ve never really written a game using that.


Because the game is basically a website, you can use Google Analytics to get stats on how people play it. I made it so the site sends an event to Analytics every minute, so I get a fairly accurate approximation of how long people played the game. I also send an event when people finish the game. Though, I’m not sure if that message got always send in time to the Analytics servers, because players might have closed the tab too quickly.

Audio support isn’t the best yet, so I kept it simple. You can’t be sure that music loops won’t have gaps. That’s why I made the music fade in and out at the beginning and end. One problem that I noticed too late was that audio isn’t working in Firefox. I must have used the audio tag in a way that isn’t supported.

HTML5 is not perfect but it worked out well for this LD.



The feedback I got was mostly positive. A look at the graph below reveals that I got my best scores this time. Maybe it’s a bit related to being a Jam entry compared to the previous entries (all compo). Also I was fortunate enough to place #1 in Innovation(Jam) – tied with shiprib’s “Mind The Gap”. Their entry received way more votes than mine. This makes their final score more of an achievement, because ratings usually go down with an increase in votes.

Best feedback came from my brother: “Why do you always make depressing games?”

In the feedback I could see that there weren’t too many hickups. I tried to make this game easier than my previous ones, because the difficulty was usually a gripe for players. It got a little bit too easy though…so easy that it started to feel like work for some? I can understand that though, because the earlier levels are maybe too obvious.

Despite being a bit too easy, the controls weren’t communicated well enough. Though the intro screen had a hint how to navigate, it didn’t click for everyone. Multitude who played my game on his twitch stream struggled a bit (few others I showed it to as well). It’s nothing big, but I dislike these types of confusions when I play a LD game.

An interesting observation is that some players put their finger directly on the active block when extruding, thereby blocking their view (makes it harder). It takes a while for them to break that habit. Also not everyone understood that it’s completely turn based, wrongly interpreting the toggling walls to be timing based.

Puzzles are supposedly easier when you move in small steps. I found it to be fairly amusing to watch when someone carefully moved one unit at a time down a long distance only to run into one of the toggling walls – swearing and then restarting the level. It makes me almost think that it’s not needed to enforce larger extrude steps, because it’s something you will arrive at naturally.

Thanks to everyone for their feedback!


The Future of Extruder

It doesn’t seem like the stupidest idea ever to continue working on Extruder. But I’m not completely feeling it. Maybe I’ll do some more prototyping and see where it’ll take me.

I think the great idea/gameplay-element isn’t there yet, but the general direction seems right. I like that it’s turn based and how it works with touch and mouse. Also that it’s all contained within a small square.


What I’m taking away

Feedback is great, especially when the player is sitting right beside you in person. It’s way easier to sense their confusion, boredom, and excitement – you get that thirst to offer them something more interesting. So get more feedback while you’re working on your game, invite some friends over, go to a jam, or whatever.


Be more productive. You should be really quick at exploring new gameplay ideas. Gameplay should be the core of your entry, otherwise it’s hardly a game. So further try to optimize your workflow with regards to that.

The current Ludum Dare won’t make you that much better for the next Ludum Dare. I doubt that somebody can grow all that much in 2-3 days.  It’s the rest of those 4 months that really count. LD just shows you where you are right now.


My Personal Guideline

Here is my updated guideline, for what I think a dev should aim for in LD. Of course there are exceptions. :)

  • Minimize effort for audience to start playing (installing is super annoying)
  • No waiting for the player
  • Communicate controls and objective well
  • Good controls
  • Intro and ending
  • Don’t expect players to play longer than 5min
  • Push for lots of creative, personal ideas and originality
  • Try something new every time
  • Make preparations beforehand (mostly related to the new thing)
  • Don’t brainstorm or paper prototype too long
  • Try to make the theme the heart and soul of your game (I struggle with that)
  • Quickly build what’s neccessary to explore the gameplay space
  • Get lots of feedback while you dev – best if in person
  • Rate lots of games
  • Most importantly: learn and grow in the time between LDs


Ludum Dare Website

I think the best thing that happened this LD were the live streams. Those where people played the submitted entries. It was somehow the most relaxing way to learn about games that I hadn’t tried yet, and also cool to see them play my game. These streams seem like a good form of feedback. Which makes me think, what if video playthroughs could be as easily posted as regular comments? Currently it’s tricky to find the right spot in those long stream recordings.

I still don’t like the LD site that much. It’s confusing, and awkward. I’m sure the visibility of many games could be increased by a redesign.

I also thought about the rating/playing process. It feels like it can be optimized. On the Indie Connect I tried out SoS’s DIY Arcade with a ton of his games on it. It was really quick and easy to switch between the games, which kept me playing and trying out a lot of games without feeling annoyed. It should be that easy for Ludum Dare games. But yeah it’s tricky, because there are different types of games. Some run in the browser, some require a download via dropbox, others are hosted on mediafire or whatever, and in some cases you need to install a plugin.

One possible solution could be an application that automatically scans the entry pages. Which then continues to download the games that you can run (e.g. Windows), unzips them, and locates the executable. If it’s a web based game, it would simply make a note of the link. When it’s ready with the initialization phase you browse through the list of games via the app and click on one to run it (launching either the executable or website). When you return after playing, it reminds you to rate that game and crosses it off.


Yes there are problems connected with this, but it seems like it might be a useful venue to explore.


That’s it. Thanks for reading.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]