Not logged inGosu Forums
Forum back to Help Search Register Login
Up Topic Gosu / Gosu Exchange / Ludum Dare post mortem
- - By siebharinn Date 2011-08-22 12:51
(posted to the LD site, thought it might be of interest here as well)

Ludum Dare 21 Post Mortem

LD21 marks my third serious attempt at completing a game in 48 hours. On the previous two attempts, I stalled on Sunday
morning and didn't finish.

The theme this time was "Escape". It wasn't one that I voted for, but I could work with it. You can see the results here.

My idea was that the player is a process marked for deletion in a Tron-like computer system. Player must navigate through various cores (levels) to reach the free network. He has to avoid firewalls, sentry programs and search bots.

I didn't get my intro screens done in time, so the story itself isn't really in the game, and you wouldn't know unless you read this. Ah well.

All in all, I was extremely pleased with the weekend. I submitted a game, which was a huge goal. I didn't do anything drastically wrong; although I could definitely do more things more right. Now it's just a matter of continual improvement.


1) Ruby Ruby Ruby! Man I love this language. It's plenty fast for these kinds of game. I was constantly amazed at how quickly I could go from thinking of a feature, to seeing it in the game. Ruby isn't always the best tool for the job, but it's usually the first tool I reach for.

2) Gosu Gosu Gosu! The gosu library ( with ruby bindings takes a zen like minimalism approach. Load a graphic, blit it. Load a sound, play it. Not a whole lot of options. But you know what? It was exactly the right amount. It did its job when asked and stayed out of my way otherwise. It conformed to the way that I worked, rather than requiring me to conform.

3) More time devoted to artwork. Previous LD efforts were almost entirely coding, with no thought to art other than the barest stand-in images. Never sound or music. This time, while my art isn't great, it's all there, along with sound and music. Not great, but a huge step forward in terms of actually finishing.

4) Family support. It's hard to overstate how awesome it is to have a family that was not only willing to let me disappear into the cave for the whole weekend, but would actually bring me food and water. Thanks ladies!

5) Git. I can't imagine working without a repository now. Even in a single user environment. Next time I'll be setup on github.


1) Collision detection. I borked this part up HARD. And I spent a lot of time looking in the wrong places. This is one of those basic game formula that I should have known, should have easily implemented, should have loaded from a gem, something. Spending several hours reinventing the wheel (or square, in this case) was frustrating and wasteful.

2) Ergonomics and comfort. Apple peripherals are stylish and pretty, but by the end, my wrists and shoulders were killing me. Using a Magic Trackpad for Photoshop work was a lesson in pain. TextMate took too many keystrokes to do oft-repeated actions. And I felt like I was constantly reaching for the trackpad, just to change window focus so I could go back to the keyboard. Probably just a matter of figuring out the right way to do it. I want to be able to never take my hands off the keyboard when coding. Even reaching for the arrow keys has to go. That might mean emacs. Sigh.

3) Cross platform issues can't be put off to the last minute. I should have been doing Windows builds the whole time. I was also packaging everything by hand, which is error prone. My uploaded entry is missing the right audio libs, so I'll need to fix that. So next time, some rake tasks for doing builds automatically, and frequent Windows tests.


Ruby and Gosu, definitely. That combination just works. Figure out packaging and cross platform stuff ahead of time. Find (or build) a gem with some basic game dev primitives. Improve my editor-fu. Not as much junk food.

OSX Lion
Ruby 1.9.2 / 1.8.7
Photoshop CS3
Parent - - By jlnr (dev) Date 2011-08-24 10:31
Well, thanks for the Gosu part! :) If you want your game to become a tiny bit more discoverable here, I can move this into Gosu Showcase and you can attach a screenshot of your (root) posting. The "project of the day" link on the front page sometimes attracts an extra player or two over the months.

I actually liked the gameplay, but I think a single introductory screen would have helped the story a lot. And the fact that the player always auto-rotated to the top is weird, since the animation is really nicely done otherwise. I'll give it another try with my gamepad if the game supports that.

Off Topic: So you have your magic trackpad next to the keyboard? I like to use open laptop as a keyboard/trackpad combo. Means I can integrate lots of clicking in my workflow without lifting my hands. Is there a way to set it up like that? Or do the slopes ruin it?

And I still like to let Time Machine run alongside git, saved me during two LDs. This time I was jamming along on a remake of an old game, and I again deleted an hour of work when I tried to exclude part of a file from a commit. This stuff is just so painful under a tight schedule...
Parent - - By siebharinn Date 2011-08-27 04:28
I'm not sure this one is worth being discoverable, at least as is. The more I look at the code, the more I hang my head in shame. That said, I don't think I've ever seen LD code that was worth cheering over. I can't decide whether to clean this up, or start from scratch and build something different.

I was *VERY* impressed that the double parallax worked as well as it did. I honestly thought that I would have to cut one of those for performance, but at least on my machine, it was very smooth. A couple people reported sluggishness, but I have no idea on their hardware specs.

The player turning was actually a last minute addition. Up until about an hour to go, the player always faced forward. The rotation is completely faked in the code, as a visual effect. It never occurred to me to have true rotation in a top down scroller. Ah, hindsight.

I have the Apple wireless keyboard, with the trackpad setup right next to it. So I still have to reach to get to it. I tried it briefly in front of my keyboard, thinking it would be the same as the laptop trackpad, but it didn't work very well. Mostly due to the rise of the top of the trackpad, but also because I ended up touching it more than the laptop trackpad. For the final bit of photoshop, I had to switch back to my regular gaming mouse (a logitech), because I could feel my shoulder starting to bunch up.

Are you using TextMate? There are so many things about the editor that I love. The bundle support is great. But some of the keybindings are suboptimal, and whenever I would run my game, I would have to Cmd~ to get back to the editor screen, then tab over to whatever file needed attention, because the CmdR launch would only work on main.rb. I'm sure I could set up some project bindings to ease some of that. Just seemed like a lot of tabbing through windows to get where I wanted to go, and after a while it started to wear on me. I keep toying with the idea of moving to emacs, but it's so "not Mac" that I keep going back to TM.

I'm using Time Machine as well, and it has saved my butt more times than I can count. On projects that pay money. People don't understand how incredible a feeling it is to have a backup every hour while you're working.

I've forked gosu on github, in the (probably vain) idea that I might be useful. Is looking at the issue tracker the best approach? I would like to see some basic collision math somewhere; I can either build it as a separate gem, or add it into gosu. Separate is probably better, in the spirit of minimalism. Let me know what you think.

Thanks again for gosu. It really does follow the ruby philosophy of just being enjoyable to work with.  :)
Parent - By jlnr (dev) Date 2011-08-27 04:53

> A couple people reported sluggishness, but I have no idea on their hardware specs.

Feel free to forward any Gosu related problems. LD is really great for catching all those, with so many different people playing your stuff.

Bummer about the magic trackpad. I guess I'll just keep my open Mac under my screen. Seems it's really the best thing for your hands, but it looks terrible and destroys any desktop Zen.

> Are you using TextMate?

Yep. I got used to tabbing to main.rb to run stuff. I guess a Gosu.tmbundle to run main.rb and to snippets for complicated calls would be awesome (draw_rot, tab!). Or even window(tab) to create the full skeleton. With such a tiny interface as Gosu, maybe it could even add snippets for everything.

The issue tracker is usually pretty intense stuff that other people have pointed out. The little things are synced from my OmniFocus db every day:

Most issues have to be fixed from the C++ side though and I bet some don't make sense to anyone but me :)
Up Topic Gosu / Gosu Exchange / Ludum Dare post mortem

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill