Palagpat Coding

Fun with JavaScript, HTML5 game design, and the occasional outbreak of seriousness

Hmm, on second thought...

Monday, June 17, 2013

I think instead of making Saturday my weekly update here, we might as well say it'll be Monday, since the last several have all fallen on Monday anyway. :-P

Last week, I wrestled with the idea of doing a fork of the Breakouts project, given that I pretty publicly said on Twitter that I was going to do so in June. Well, reality sunk in shortly thereafter, when I realized that it's already the middle of the month, and my Tangle game engine isn't really capable enough yet to really tackle a Breakout clone. Soo...

Tangle needs a more robust answer for handling user inputs. Right now, the InputManager class can handle keyboard events of various stripes, and that seems to be working pretty well. But there's no mouse or touch support yet, and there's a whole class of target browsers (i.e. mobile ones) that I can't reach until that's in place. So the game I choose to tackle this month is going to force me to finish that capability, which will incidentally force me to finish the next entry in my Let's Make a Canvas Library blog series:

a simple snake game
Yeah, Snake.

Snake is simple, yet enables me to play with all kinds of different input vectors: keyboard, mouse clicks & gestures, touchscreen tap & swipe, et cetera. Seems like the perfect choice.

Decisions, decisions...

Tuesday, June 11, 2013

I'm on the road this week, so missed my scheduled Saturday blog post. This isn't that post, though (it's only about half done, and I'm not likely going to finish it tonight)

What I am going to talk about, though, is what my project is going to be for this month's project in my One Game A Month (#1GAM) commitment.

When I (reluctantly) put a fork in Quilt at the end of last month, I sat down and did a little brainstorming about what should be next. Like most hobbyist coders, I have a bunch of unfinished projects lying around that I intend to pick up again to finish "at some point." Part of my hope for #1GAM is that it kicks me in the rear end and motivates me to finally finish those. So that's where my list started:

  • Blak & Bloo
  • Prince of Pixels (a tiny puzzle platformer / homage to the original Prince of Persia)
  • Muggins (card game I learned from a friend years ago)

All three of these are partially done, but none of them are really completely fleshed-out yet. Plus, if I'm going to revisit and finish any of them, I'd like it to be with the latest version of my Tangle game library, so there will be some necessary re-plumbing in each case.

Then, I remembered a conversation I had on Twitter last month:

So, yeah. To put this in a bit more context, my idea was to make a TangleJS version of Breakout for the TodoMVC for game engines. The only problem with that idea? It's going to be TONS of work. Here's an abbreviated list of the game library features that Breakouts is designed to compare, with checkmarks next to the parts that Tangle already has:

  • collision detection ✗
  • sprite animation ✗
  • sound effects ✗
  • tiled backgrounds ✓
  • menus and scene transitions ✓
  • player input ✓
  • text rendering ✓
  • mobile support ✗

That's an awful lot of ✗'s, especially since we're already a third of the way through the month and I've barely started! :-/

So, anyway, that's where I am. We'll see how things progress the remainder of this week, and reassess this weekend. I'd really like for this whole #1GAM thing to actually motivate me, not depress me.

One Game Down

Monday, June 3, 2013

So, that was May.

I actually shipped something, even though I didn't get everything done I would've liked. Actually, I spent all my spare cycles last week trying to get touch events added to Tangle's InputManager, so Quilt would have mobile support, but I ran out of time without getting it fully functional. Sigh.

That also meant I didn't get many more levels added to Quilt (it currently sports 8, and the difficulty curve is a little too exponential... level 7 should be around 10 or so, and level 8 shouldn't come in until 15 or 20), nor did it get the level-reset command I wanted to add, even though that would have been like 10 minutes of work. At most.

I may still sneak that one in, in fact.

The Importance of Moving On

I read Jeff Atwood's blog, Coding Horror, pretty regularly, and even though I don't always agree with everything he has to say, this post left a pretty strong impact on the way I approach software development:

At the end of the development cycle, you end up with software that is a pale shadow of the shining, glorious monument to software engineering that you envisioned when you started.

It's tempting, at this point, to throw in the towel -- to add more time to the schedule so you can get it right before shipping your software. Because, after all, real developers ship.

I'm here to tell you that this is a mistake.

Yes, you did a ton of things wrong on this project. But you also did a ton of things wrong that you don't know about yet. And there's no other way to find out what those things are until you ship this version and get it in front of users and customers.

So, yeah. Quilt's out in the wild now, and if anyone wants to submit feedback on Github, Twitter, or G+, I'll accept it.

I'll also keep tinkering, because that's what I do. But it's time now to turn my attention to June's game for #1GAM.

More on that soon.