About sowbug (twitter: @sowbug)


sowbug's Trophies

The "I liked your game anyway" hug of solace
Awarded by Tenoch
on April 21, 2009



X-0ut says ...

Seems cool, but I simply could not stop them from reaching the bottom. Ever.

mjau says ...

When I first started playing this, I thought it was going to be at least a bit hard, because I assumed it was going to be like a match-4 with two different match mechanics, and blocks doesn't move when you remove them. But then I discovered that blocks doesn't have to touch to be candidates for a match, and it suddenly got way too easy. You can basically just keep matching colours and not care about anything else, and you'll keep the wall all the way at the top of the screen, waiting for it to give enough new blocks so you can match again. Maybe it starts going faster after a while, but it didn't seem like it did and I wasn't having much fun since there wasn't any challenge, so that's where I quit.

So uh, I guess the high pain threshold or forgiving mind that the readme mentions is due to slow repetitive unchallening tedium? (Wow, that was negative. I'm sorry.)

I see it's your first LD though, so well done on completing a game in 48 hours =)

rogual says ...

This has potential to be a decent puzzler, but it's way too easy. There would actually be some challenge to it if the player was required to switch between matching letters and matching colours, but you can ignore the letters and just match colours really fast. The wall never got anywhere near the bottom.

lucasshrew says ...

Not bad!! but i feel it a bit easy (you can always find matches easily).

Tenoch says ...

You mention the "not fun" component a lot. I believe it is the hardest part of the compo. Coding is just like solving a problem, but actually getting the ideas that make the game fun... I can't do it.
I suppose it comes with practice. I still salute the effort, and hope you will try again next time!

Entar says ...

More fun than I thought it was going to be when I started. Got to level 12, 5521 points.

sol_hsa says ...

When I first started playing, I thought it was challenging since I only used the blocks on the bottom row. Once I realized I can pick any of the visible blocks, it became too easy, and thus boring.

Endurion says ...

It's solid, but the gameplay is lacking some challenge. If you impose some other limit it might be more fun.

Covenant says ...

Might be an interesting game, if you have to match for example 4-letter words (real words)... Teaching kids to read, really...
For me it was too easy... for kids, it's probably great...

SethR says ...

This is not bad at all! Once I figured out that matching the letters AND colors were where the points were, it got interesting.

Two simple changes that I think would helped:

1. Don't use letters. It sort of screamed "word game" when it wasn't, shapes, or animal icons would have been better.

2. Cosmo system. Maybe consider a full match (shape + color) a "tetris" of sorts and raise the a multiplier for each one...

jovoc says ...

Fun but a bit too easy. Since you can pick any tile, and match color or letter, there's too many combinations and it devolves into how fast you can click. If there were more a bit more constraints such as only picking exposed tiles or something this would be really fun. Also if the unconnected tiles would "rise" or break off like the 'X' it would be more interesting.

Seemed pretty polished but was a bit bland without a theme. Adding some simple theme and GFX could really spice this up.

Great job completing something playable (that's more than I can say), you've got the makings of a great puzzle game here

greencow says ...

good game, got 1718 using a touchpad =P next time i'll try it with a mouse

nilsf says ...

Better than I expected. The different sounds for better moves was a nice touch.

HybridMind says ...

I got over 1000 points before I had to give my mouse hand and clicker finger a break. :)

Congrats on finishing a playable game in your first 48hrs. Seems after reading your post mortem you picked your goals and stuck to them fairly well. As noted it is a bit easy and low on the fun but you knew that. :)

I thought it moved a bit slowly for my taste and as others have pointed out there is low motivation to match numbers and not color. I did keep trying some various combinations to see if there were different bonus moves but not sure I saw anything.

Archive for the ‘LD #14 – Advancing Wall of Doom – 2009’ Category

Postmortem: Flood of Air

Posted by (twitter: @sowbug)
Wednesday, April 22nd, 2009 9:07 pm

Background and Pre-Compo

My primary goal of this, my first Ludum Dare, was to finish the competition. Nothing more; not to win, not to place, not to show. In fact, someone’s game has to come in last place, and I was totally OK with that game being mine.

There’s something mystical about computer games. Every developer I know has tried to write one. All of us dream of checking out from our dreary jobs after a sleeper hit that we wrote at home over 52 weekends. But though we’ve all tried, none of us ever seem to finish our games. I was tired of being in the slacker group. I wanted to join the cool kids who have finished a real computer game.

I made the final decision to participate a few hours before the theme announcement. My wife’s 9 months pregnant and could go into labor at any moment, so when I first heard of LD a few months ago, I dismissed it as too close to our due date. But by Friday afternoon (Pacific time), it was looking to be a quiet weekend, so I committed. I knew that by Sunday evening I would submit a Ludum Dare entry.

Technical Preparation

At around -2:00 (two hours before the theme announcement), I downloaded an IRC client and joined #ludumdare. I closed all my open projects in Eclipse and created a new blank Pydev project. I made sure I could draw a gray screen in pygame. I promised myself that I’d stick to 2D.

I searched Google for [royalty-free clip art]. Then I read the contest rules for the first time and was horrified to learn that we couldn’t use clip art. You might as well have asked me to sing on American Idol. But hey, level playing field, etc. etc. etc. No biggie.

While waiting for the theme announcement, I read some of the survival guides and prior postmortems. Don’t use LD as an opportunity to learn new technologies. Don’t start coding before you’ve done a little bit of design. Don’t design for lots of content. Don’t get drunk. Don’t pick this weekend to get a new girlfriend. Roger wilco.

First Night

I spent the first few hours of the competition kicking around ideas. Almost every one was too ambitious, mostly requiring level design or lots of cute icons that I couldn’t draw, or else having a bunch of vague “and then the two actors have some sort of conflict” parts that I wasn’t sure would get clearer in the remaining 46 hours. I settled on a dumbed-down Tetris variant.

This was the first decision I made in the competition, and it was probably right for my personal goal, but it doomed any chance my game had of being playable. It was the best briefly-describable game I could think of in the short timeframe. I traded the benefit of simplicity for the chance of creating something interesting.

I wrote a little code and started talking myself out of the Tetris idea. Sensing trouble, I backed away from the keyboard and went to bed.


I woke up hating my design even more. I started typing in more Google searches: [anti tetris], [tetris variants], [inverted tetris]. My web browsing was getting more free-form. Huge warning signs. I pulled back and resolved to get back to my stupid original idea.

Six hours later, I had the core game finished. I added scoring and an in-game tutorial. I also added some animation transitions that were surprisingly effective in helping my focus group (my two kids, ages 4 and 5) understand the cause/effect relationships in the game.

After a dinner break, I made another big decision: either explore gameplay and risk destabilizing the code, or button everything up to guarantee that the entry would be finished. I picked the conservative route and promised to return to gameplay during whatever time was left on Sunday.

This decision hurt, because I knew the submitted game was now very, very likely to be trivial and dull. But last time I checked, game design is hard. Which am I more likely to do in the remaining hours: stick to my strength of writing production-quality code under deadline, or come up with a brilliant flash of creativity?


More buttoning up: gameinfo.xml, readme, license, screenshot, hunt-and-peck testing (which did discover a few obscure but good bugs), py2exe, free-licensed font, and coming up with a suitably dorky name for the game. As expected, these details sucked up a fair amount of time. But damnit, my entry was technically complete in every sense. I’d finished Ludum Dare!

With the remaining time, I implemented two interesting features: a special tile that showed up later in the game and introduced some locality constraints on the board, and various gradients on board components that gave them some visual depth. The gradient code introduced far more CPU usage than I expected, so I spent the last 90 minutes before the 48-hour mark prerendering and caching as much as possible (while flipping through the Git documentation to figure out how to quickly revert to earlier in the day if I had to abort the gradient project to make the deadline).

What I did right

  • Set a realistic initial goal and stuck to it.
  • Wrote solid, conservative code.
  • Added a reasonable level of polish: transitions, cosmetics, in-game tutorial, and compliance with all the LD submission guidelines.
  • Stayed on IRC.
  • Admired without envying the progress of my fellow competitors.
  • Postponed needless risks as long as possible, while tackling necessary risks as early as possible.

What I did wrong

  • Wrote a really crappy game that is wasting LD judges’ time. I didn’t realize that every entrant was expected to judge every other game. That’s a heck of a O(n^2) algorithm, and I’m sorry to be contributing to the polynomial explosion. I wish there were a “submitted for non-consideration” tag, like “finalbutdonotjudge” instead of “final” if you’re entering just to enter, not to compete.
  • The one somewhat fun aspect of the game is the special tile. But I don’t introduce it until 60+ seconds into the game. Unfortunately, from the comments left so far for the game, I am pretty sure that most judges exited before seeing the first special tile. The rule of thumb is to sell the core of your game in 20 seconds, or risk your judges bailing out early. Fixing this wouldn’t have saved the game’s crappiness, but I’m disappointed that I didn’t get this easy part of the game presentation right.
  • Aimed a little too low, even for my first competition. It’s my personal style to value reliability over creativity, but successful gaming is all about taking risk. That’s obviously true in game play, but it’s also very true in the development of indie games. Your audience really doesn’t give a shit how proud you are that you finished your game; that’s a given, or else they wouldn’t be wasting their time playing your unfinished game. So people expect that any finished game will reach a basic level of challenge, and mine definitely failed that test. It was a fine personal goal to finish LD once, but for a second LD, if my game were no more fun than this one, I’d decline to submit it and call my attempt a failure, even if it was technically a complete entry.
  • Didn’t explore every artistic challenge the compo has to offer. I should have tried to draw something. It was fine to use sfxr for my beep-boop sound effects, but at a minimum I should have tried throwing some reverb over the wav files. I avoided injecting any kind of artistic expression into my game, and as a result the game’s not just boring, but also sterile.

Faking artistic competence?

Posted by (twitter: @sowbug)
Monday, April 20th, 2009 7:28 pm

Fellow LDers,

I can barely draw a circle, let alone cool monster or robot sprites. I’d like my next LD entry to involve real artwork, rather than just letters and geometric shapes. I don’t expect to ever see my creations hanging on a wall in a museum. But if I need a trash can in my game, I’d like to be able to spend a couple hours in a paint app and end up with something that looks like a trash can, rather than a gray rectangle with vertical lines.

Do any of you know of books or websites whose specific goal is to teach geek coders how to draw simple iconic artwork? If so, I’d appreciate your recommendation.

By the way, if you believe this is an unattainable goal (“it’s a gift — either you have it or you don’t”), or that I’m asking the wrong question, I’d still appreciate hearing what you have to say. I know that people who don’t have the “gift” of computer programming are nonetheless competent professional software developers after being taught how to program, so I hope the same is true with art.

Please help me learn how to learn (or maybe just fake) artistic competence!

Final: Flood of Air

Posted by (twitter: @sowbug)
Sunday, April 19th, 2009 1:07 pm

Zipfile here. The executable is for Windows, but it’s written in Python so you can probably figure out how to run it on other platforms.

My kids seem to enjoy playing the game, so that’s sufficient for me to stop. If I get any great ideas in the next 5 hours and 54 minutes, I’ll re-upload, but as it is, my first LD attempt is complete!

Frequently Asked Questions

Q. What’s with the weird game name?
A. It rhymes with how I mispronounce Ludum Dare.

Update 29 minutes before end: new binary, new screenshot. Tiles now have gradient to look a little less sucky.

Wheat Thins and Hummus

Posted by (twitter: @sowbug)
Sunday, April 19th, 2009 10:08 am

Hummus is easy to make if you have the ingredients. One can of garbanzo beans, one clove of garlic (READ THAT CAREFULLY. IT DOES NOT SAY “ONE BULB.”), some olive oil, and tahini. Mix them up in a food processor and eat.

Since you don’t have tahini, your options are (1) leave it out, but put in more olive oil to make up for it, (2) see whether you have any sesame seeds in the cupboard, and put those in (again, add olive oil).

Dry run for final tag

Posted by (twitter: @sowbug)
Sunday, April 19th, 2009 9:35 am

My distribution. That is a sticky link to the latest version; I’ll probably be updating it throughout the day.

Changes since last night:

  • Figured out py2exe. If you’re stuck, download my distro and check out setup.py.
  • Added the stuff the LD judges want (gameinfo.xml, screenshot.png, license.txt, readme.txt). Not that I really care whether this game gets judged, but I want to go through the formal steps of submitting an entry, regardless of the game’s quality.
  • A tiny bit of game polish.
So now that all the release-related work is done, I can spent the next 9.5 hours turning this into an interesting game, and in theory avoid any panics at the last minute.

Halfway point. Calling it a night.

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 7:19 pm

Gave the game out to two friends and let my son try it. Everyone seems to understand it, but as suspected it’s still lacking in the fun department. I’m going to introduce a new tile type that can be removed only by removing its neighbors, which should give some meaning to the currently meaningless wall layout. Latest source here.

Eye candy!

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 6:31 pm

Also added scoring. Source here.

Smooth scrolling, slower descent rate

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 3:32 pm

Easier to play now, but very dull. Source here.

Taking a break

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 2:02 pm

Going to rest a bit. I’m at a point where I could technically submit a finished game, though it would get a 0 for polish and maybe a 0.5 for fun. It’s still too hard; although I reduced the number of tiles, their height is doubled, so they go down the board just as quickly. At a certain point it becomes a question of how accurate you are with your mouse, which isn’t at all how I imagined it. Time to stop and think about how to make it more of a mental challenge than a dexterity challenge. Latest source here.

First pre-alpha pre-release preview

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 10:28 am

The game is now playable and has a working end condition. It’s not much fun yet, but that’s OK. Download source.


Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 7:44 am

Have the basic tile/slot drawing code in place. The idea is that the bunch of tiles at the top are a wall that is slowly scrolling down toward the bottom of the screen. You drag individual tiles to any of the four slots at the bottom. If you form interesting sequences (maybe four of the same shape, four of the same color, etc.), then they’re removed from the wall. The hope is that the game is made challenging by the conflict between the need to remove bottom tiles quickly (lest they reach the bottom of the screen, causing your game to end), and the desire to remove higher tiles because they are part of interesting sequences (presumably awarding more points than boring sequences).

The number sprites will be replaced with something more polished and abstract (probably circles, triangles, etc.). And the colors will be lighter so it doesn’t look like a 3 year-old’s bedroom floor.

I’ll finish the first iteration with these simple rules, then see how gameplay goes.

I hate my game, Part 2

Posted by (twitter: @sowbug)
Saturday, April 18th, 2009 6:29 am

After a so-so night’s sleep and around a dozen wall-o-doom ideas, I returned to the basics: what was my goal in entering Ludum Dare? The answer was “to finish a game.”

Stating the goal in very simple terms was helpful. My goal is not to write a good game, or to write something original, or even (unfortunately) to write something fun. It’s just to finish the competition.

So I’m pressing on. I’m pretending LD 14’s theme is “Tetris Ripoff,” and my game will be the best of that sorry bunch.

I already hate my game

Posted by (twitter: @sowbug)
Friday, April 17th, 2009 9:52 pm

After further whiteboarding, I’ve decided my “Tetris variant” game is in fact identical to Tetris, but (a) upside-down, and (b) not fun. The “interesting shape” game rule that I envisioned is really just creating fully-filled lines of blocks, and that’s Tetris. Splitting the line-creation task out into a separate part of the game field doesn’t improve the play of the game, and re-combining it with the rest of the field is… Tetris.

So back to the drawing board. But at least I’ve written my pygame skeleton, which I had to do sooner or later.

First snack, first idea

Posted by (twitter: @sowbug)
Friday, April 17th, 2009 8:54 pm

Triscuits with salami and American cheese.

This is my first LD so I’m going to keep it very simple. Tetris variant. Portrait orientation, narrow screen. The advancing wall of doom is a grid of blocks moving downward. The blocks compose individual shapes of (probably) four blocks each. Your job is to create interesting combinations of shapes, perhaps just rectangles. Completing a combination removes the lowest corresponding blocks from the advancing wall. When the wall hits bottom, game over. Points for creating shapes.


Posted by (twitter: @sowbug)
Friday, April 17th, 2009 6:17 pm

  • Pygame
  • WinXP
  • Kids’ bedtime in 43 minutes

[cache: storing page]