Anyway, here are some vaguely postmortemy notes on the game, mostly for my own reference:
There’s a certain tone I try to go for in my games, and I think Circuit Drop hits it reasonably well. For the most part, gameplay is pretty mellow, and you can play at whatever pace you like. Succeeding — forming circuits and breaking blocks — is relatively easy, but excelling — large breaks and chains — can be extremely challenging. Achieving concentration and a sense of flow through relaxation rather than rising tension is something I hope to explore more in the future.
Lots of iteration.
The gameplay is surprisingly close to what I imagined when I originally thought of crossing Drop 7 with Pipes. It took a long time to get there, though. After the initial implementation, I spent a lot of time trying out different rules and modes: falling blocks, rows of garbage, open connections in the walls — at one point, the game was all static puzzles (vestiges of this remain in the tutorial). Over time, I managed to whittle all the fluff down to keep the focus on building and breaking big circuits. I thought about leaving some things in as options, but there’s a difference between a “feature” and a “thing that turns the game into something very different and less fun,” so I just left them off.
I get a kick out of keeping sound effects in tune with background music, and I get an even bigger kick when the sfx are in time with the music. I cheated to get that effect here: instead of writing a bunch of tricky timing code to sync sfx with a background track, I just generated the “track” in code. Of course, doing this means that the music consists of nothing more than a vague bass line, but it allowed me to do some fun things with shifting rhythms and branching chord progressions. And in combination with the semi-randomized notes that play when you drop or break blocks, the spacey, wide-voiced sound fits well with the slow, abstract gameplay.
Useful utility code.
This was my biggest project yet in Flash/AS3, and I was able to develop a lot of useful utility classes along the way. Just little things, like some tweening wrappers, a seeded random number generator, and best of all, a tool for loading configuration files that supports adding new fields without having to add extra parsing code. Things like that always make the next project that much easier.
It just feels good to ship something, even if that something is half-assed.
Not really done.
The flip side of feeling good about shipping something half-assed is that… it’s half-assed. Bare-bones preloader, no volume control, no records, ugh.
Chaining is too hard.
Some games derive a lot of their pleasure from big breaks: Tetris, Puzzle Bobble. Others are geared more towards chaining lots of little breaks together for big bonuses: Money Puzzle Exchanger, Drop 7. Super Puzzle Fighter is a game where you can have it both ways, and while Circuit Drop is ostensibly the same way, the problem is that it’s just too hard. The tangled paths that blocks form as you pile them up make it difficult to keep track of what connects to what. For me at least, once the 3-point blocks come into play, it becomes impossible to go for chains, and big breaks become the only viable strategy. I could have jacked up the score multiplier on chaining to incentivize it, but that would just be rewarding un-fun behavior, and what’s the point in that?
Mistakes can kill.
Even though playing for chains isn’t much fun, going for big breaks is. Unfortunately, it’s way too easy to make a game-ending mistake. If you happen to block yourself off and don’t have a bomb block handy, you’re pretty much screwed, and it’s not very satisfying to lose a game because of a single slip of the fingers.
The annoying side effect of this problem is that you pretty much always want to keep a bomb block in your hold slot at all times, which prevents you from doing anything more interesting with it.
Iterating is good, but when you don’t get feedback early, you end up iterating down dead ends and wasting time tuning a puzzle mode that you later scrap. This is why I’m trying to force myself to release things sooner rather than later, so that I can get some eyes other than my own myopic ones on the game, and recognize dead ends sooner.
It all looks so, so bad.
The drab blue on gray, the clunky buttons, the barely-there fx, the same damn pixel font that’s in every crappy Flash game. Oh, the shame.