About diiq (twitter: @@diiq)


Ludum Dare 32

diiq's Trophies

diiq's Archive

Prepping my build system

Posted by (twitter: @@diiq)
Friday, August 21st, 2015 9:28 am

Last Dare, I used FabricJS and coffeescript to build an in-browser my game. It was my first time using fabric, and I liked it; it was easy to use, vector based so it looked slick, and stayed out of my way.

I made a couple of mistakes, though:

Experimental Build System

First, the build system: I experimented with using Broccoli and Browserify for my build system. They’re both cool technologies, but they’re simply not ready for prime time. I spent a lot of time fussing with them to make sure that sourcemaps were working, that incremental builds were working, that live reload was working — and for most of the weekend, one thing or another about the build system was getting in my way.

This time around, I’ll be using a tried-and-true system built around Gulp. I use it at work and it’s blindingly fast, very reliable, and should stay out of my way.

Controlling the redraw loop myself

This was an obvious mistake. Fabric is already optimized to handle redrawing parts of a whole canvas; I chose to ignore that and redraw the whole screen every frame. What was I thinking? Of course, before the end of the weekend I was facing major performance issues.

This time around, I’ve done a little prep work, figuring out how to interact with fabric in a more natural way, just updating the objects that are moving. There’s still a lot to learn, here, but I think I’m in a much better place than I was last time.

Waiting too long for image assets and juice

This one is hard to escape in compo, but I think my game was a really nice game, and I just didn’t spend enough of the balance of my time on assets, levels, and juicy interactions. A downside of fabricjs is that I don’t have particle systems or camera shake just waiting to be added; any juice I add has to be build from scratch — so I need to start thinking about it earlier.



All in all, I think I did pretty well last dare, and I think I’m in an even better position this time around.

[cache: storing page]