Post Mortem

I started this compo months in advance – I had been working on some libraries that I thought would be really useful for making games. I had written a soft FRP lib and a 2d vector-ish graphics library. I spent a LOT of time on those! Mostly reading white papers about polygon decomposition, path rendering and rasterization. I thought I would have very nice looking 2d vector graphics for my FRP game simulation.

At the last minute I read this post linked on reddit about an entity component system using extensible effects and I decided to try to use that as well.

I ended up loving the component system (though I’m still figuring out how to handle and sequence events). I ended up barely using my libraries *at all*. I think I had been a victim of depth-first development. I got really deep into figuring out how to decompose polygons and do very low-level things when I should have been thinking about Haskell game dev as a whole. I should have been writing one specific game, then writing another specific game (and then another) and then library-izing the parts that are shared and good. Instead I had an idea like “hey, this would be cool to use for game dev – I’ll dive deep into building this out.” I also had strong intuitions about what a good API would be for those libraries and I worked hard to materialize them. I thought “yes! this is pure and clean and good!” – but once I started the compo I realized that I wasn’t using the libs in the way I had written them. I had over-theorized! What I really needed were dirty tricks and quick get-er-dones! This is a hard lesson and one that (admittedly) I’ve learned before.

In the next couple months I’ll be dedicated to developing games rather than developing libraries for games. By the next ludum dare I’ll hopefully have accumulated some tried and true techniques and dirty tricks.

To see the code I accumulated you can visit my github: https://github.com/schell/ld31.

Screenshot 2014-12-08 11.06.47

Comments

Soron
08. Dec 2014 · 17:23 UTC
Really good/useful postmortem. I ended up doing a game using the tech stack I normally prototype in (JS + HTML5), and it’s also a tech stack that I’ve used for a series of commissioned games. I was wondering if I’d miss having access to some of the code I had built previously, and if I should have put some of it into a library in advance.
08. Dec 2014 · 17:51 UTC
Really cool to see some Haskell represented in Ludum Dare! I attempted to use Elm this time round and it was surprisingly great to use (I mean I didn’t feel like I was missing any quick and dirty time-savers). Also great to see FRP stuff as that’s a concept that gamedev needs more of I think.