Puzzle Punk -- a Postmortem on a Failed Puzzle Quest Clone

by Matt Hackett, 2010 Aug 14

My vicious cycle

Something had to give. I'd been trying and failing to make my game idea a reality for years and years. The vision was simple: an online, multiplayer retro RPG. I guess the term would have been MMORPG but I'd been working on various implementations of this project long before the days of World of Warcraft.

I remember being a kid and longing to play games in the time of Shining Force and Secret of Mana. I had that same longing, but this time it was to make my own game.

Valadria (super alpha)

Eventually I started referring to my game project as Valadria. Sure, I'd go off on tangents and I'd sometimes work on other little crappy games, but I'd always come back to this core retro RPG concept.

My last iteration of Valadria is up on App Engine. It's a very early prototype, but it's playable. I've also put the source on GitHub (something I wish I'd been able to do with each of my iterations over the years).

So I had a pretty good idea about the game I wanted to build, but I'd been working on it for years with very little to show for it. Here was my vicious cycle:

  1. For some unexplainable reason, my dream game would pop into my head, and I'd get motivated.
  2. I'd scrounge up freetime between work, school, social life and gaming, and I'd put whatever knowledge I had together towards making the game.
  3. Eventually (and this was inevitable), I'd hit a hurdle and stop working. Graphics, music, networking code, whatever. Something would kill my motivation, most often the hopeless feeling of knowing I'd never finish what I'd started. This step felt like getting fired or dumped; it was heartbreaking.
  4. Rinse, repeat.

Puzzle Punk: loading_complete And it should be noted that every time I went through the first step, I'd start from scratch. It had been months or years since the last iteration, so the code was gross and the ideas were stale. I had been repeating this process for over 10 years.

It can take time to learn, especially when you're so close to something that you become blind to it. I didn't notice this cycle. I just thought I liked making games in my free time. What's wrong with that? But it wasn't that simple and it wasn't that harmless. I was suffering from a repeated, defeating, soul-crushing feeling of hopelessness every few years when I'd get fed up without getting anywhere and shelve my dream game. It was making me depressed and negatively affecting other areas of my life. And when I finally realized this, I took action to prevent it.

My prevention plan

Puzzle Punk: select_a_character

How was I going to stop this vicious cycle? I had recently read Switch: How to Change Things When Change Is Hard which inspired me to fix areas of my life that felt broken. And so the next time I was motivated to work on Valadria, I instead focused my attention on examining why the project always failed and what to do about it.

After much internal debating, whiteboarding and sleepless nights, here was my plan:

  1. Create a JavaScript game engine and use it to build a simple match-3 game.
  2. Extend this same engine and create a Puzzle Quest clone.
  3. Extend this new engine to build my dream game, an online retro RPG.

This list probably looks really unexpected for an amateur indie developer who wants to work on retro RPGs. So let me explain my line of thinking …

Why a match-3 game in JavaScript?

Puzzle Punk: create_a_character

Over the years, I had tried to build Valadria in everything from QBASIC to C++ to Turbo Pascal. When I was 23, I started working as a PHP programmer, which got me looking more seriously at Flash and JavaScript.

Flash was pretty cool (ActionScript 3 is particularly wonderful) but I was learning the most about JavaScript and I felt the most comfortable with it. So after a few more failures and still feeling pulled to JavaScript, I just said "fuck it" and decided to use it, even though it had never really been tested as a true gaming language.

And I know what you may have thought: "Just what the world needs: another match-3 game." I feel the same way, I do; I'll explain in the next section.

What? A Puzzle Quest clone?!

Puzzle Punk mockup

You may notice I used the term clone here, though I am embarrassed to admit it. As an amateur indie game developer, I feel that clones are wrong in so many ways. They lack innovation, they are sleazy and unethical, and they are at their core lazy game design. Borrowing design elements is just another part of making great software, but one should not borrow too heavily.

So how did I arrive at the conclusion that I should work on a Puzzle Quest clone?

My desire was to make a pretty massive retro RPG. I had to, for some reason. But I thought about it, and I had never even made "real" game of any kind. Not even a Tetris clone or a side-scrolling platformer. I was untested as a game developer and so my aspirations were unreachable.

Enter Puzzle Quest. I was a huge fan of the original and, like many others, was very disappointed with the next Puzzle Quest game.

Puzzle Punk: battle_local

I really wanted to play an online version of PQ with my friends, but the developer of the original did not choose to go that route. Plus, I knew I couldn't get motivated to work on something like ZooKeeper; I'm just too much of a medieval fantasy geek to get excited about much else. But I could get behind something like Puzzle Quest, so I came up with what I called Puzzle Punk: a game similar to Puzzle Quest in a steampunk world with online multiplayer capabilities.

But even this game was far too complicated. I was an untested game developer, after all, and had never shipped a single finished game. So the plan was to first make a match-3 game. That would be my baby step. I'd make a solid, stable match-3 game and then use that core framework to build Puzzle Punk.

Connecting the pieces

My end goal was not to make Puzzle Punk. That was not the desire that was keeping me up all night and defeating me every year or so. Indeed, I beat myself up a lot over the last few months for having such a stupid idea as a clone in the first place. I'd second guess my plan and consider scratching it, but then I'd remember how I arrived at this plan, and the soul-crushing defeat was pending again, so I just got back on track for finishing Bombada. I wasn't really happy with my plan but at least I finally had one.

So what happened?

Puzzle Punk: shop_modal

This plan failed. But that's ok. I actually did finish the match-3 game; it's called Bombada. It's playable in your browser right now and I put the source code up on GitHub. So I finished one step out of three.

And as you can see from the many images of the game's development sprinkled about, I did make some progress on Puzzle Punk (step 2).

The reason I shelved development on Puzzle Punk is because I started working with Geoff. We had met some time before and had mutual friends but never seriously talked about collaborating. He had some of his own ideas and his own engine he was working on, and all that stuff sounded way more fun than what I was doing. I guess if we had not decided to work together (or never met), it's conceivable that I could still be working on Puzzle Punk, but I doubt it.

I guess the reason I think that is because I didn't even attempt to try to get Geoff on board for my Puzzle Punk idea. I wanted to be working on something else.

Puzzle Punk: shop_phase_2

What was good

It wasn't all bad: I learned some extremely valuable lessons from all this.

What was bad

Puzzle Punk: modal_stats

Overall, I guess this plan was as good as any other. Clearly something needed to change because what I was trying was just not working. It's hard to say if the plan would have worked overall, but my single biggest takeaway from all of this is: if you find you can't do it alone, it can really help to collaborate.

Case in point: after working just a few months together, Geoff and I have put together what we think is a cool little game. And this is a great building block towards building bigger games.

Google Docs

I have no idea if this will be interesting to anyone or not, but in addition to uploading the mocks and wireframes to Flickr, I've also opened up the game documentation I was working on. You can view the files below on Google Docs:

Do you have any failed game projects? I can't be the only one! I'd love to read about someone else's failed project as well.

Follow author @matthackedit

LDG © 2016 • BlogTerms of ServiceVideo Policy