About siat (twitter: @kchodorow)


siat's Trophies

siat's Archive

Dirty Rotten Seconds – Post Mortem

Posted by (twitter: @kchodorow)
Monday, August 26th, 2013 7:17 am

Submitted my game! Here’s the final result:

Screenshot of the game

And the source, including all images and music: https://github.com/kchodorow/ld27. Incidentally, it worked out to 48 commits over 48 hours.

Please try it and rate my game.

All in all, this was so much fun. I thought it was really cool how much I could make in 48 hours (I can basically implement Candy Crush in two days!). I found it surprising how much art even a really simple game took (I ended up on “New Document #87” in Inkscape by Sunday… I at least started 87 pieces of art!). There were some “this is held together with spit and glue” moments (particularly Sunday afternoon) but I don’t think there are any game-stopping bugs.

Things that worked:

  • Named constants for everything, with good names. Taking the extra couple seconds to create a constant for everything kept saving my ass.
  • Making so much crap global. At first I wanted to carefully pass around just what I needed but then I just gave up and made almost everything global.
  • My level class. I ended up being able to crank out a nice variety of levels in a few minutes.
  • Using music from http://www.nosoapradio.us/ was a huge time saver. I just plopped in an awesome free MP3 and bam, atmosphere.
  • If you win Dirty Rotten Seconds, the little duelist floats off into the sunset. It’s subtle and most people probably won’t notice, but the effect made me happy.

Things I would do differently:

  • Spend some time the first night working on a deployment script. I ended up with something that sort of worked, but deploying was always nerve-wracking and I ended up with all sorts of unnecessary junk uploaded.
  • Not make a game with people in it unless I’m using someone else’s assets. I hate making art assets for people, and I kind of committed myself to making 12 of them for this game. I was dreading taking care of it all Saturday.
  • Start out by adding lines every 100px on the screen. It would take 20 minutes, tops, and would have saved me endless frustration over where things were being placed/aligned.
  • I need to work on my animation skills. I’m not sure what free tools are good for 2D animation, but Inkscape isn’t it.

Overall, I wish I had had the time to make it more of a strategy game and less of a twitch game. Also, making levels turned out to be so easy I wish my theme had allowed 50 levels or so.

I’ve really enjoyed trying out other people’s games: people came up with some really neat stuff. Some of my favorites so far:

And now I have 1500 new games to try out! Pretty amazing.

On the downside, I feel like I didn’t get much of a weekend. I had a lot of fun, but I’m starting the week with my brain and hands all tired.

Still, it was an awesome experience and I’ll definitely be participating the next Ludum Dare!

Progress report

Posted by (twitter: @kchodorow)
Sunday, August 25th, 2013 12:10 pm

Here’s my game so far:


Please give it a try! (Note that you actually don’t have to beat the timer at the moment, you just have to beat the other gun.)

I spent most of this morning trying to get the enemy intelligence working. I think now it’s too hard, going to spend some time this afternoon tweaking level difficulty.

Working on enemy intelligence

Progress bar library for LimeJS

Posted by (twitter: @kchodorow)
Tuesday, August 20th, 2013 3:49 pm

I’ve made a small sprite scaling library for LimeJS, inspired by CCSpriteScale9 for iOS.  It’s good for speech bubbles, progress bars, health bars… anything with rounded corners and variable sizes.  You can download it from Github.

To use, save spritescale9.js somewhere in your LimeJS project and run python bin/lime.py update to get the new namespace. Then add something like this to your code:


var spriteSheet = new lime.SpriteSheet('someSpriteSheet.png',
    lime.ASSETS.someSpriteSheet.json, lime.parser.JSON);
var sprite = new kchodorow.lime.SpriteScale9()

It assumes you’re using sprite sheets, although it would probably be easy to hack in support for “bare” images.


[cache: storing page]