Build-a-Bandit Post Mortem

Posted by
December 30th, 2012 6:51 pm

This was my first Ludum Dare, and I had an absolute blast. I’m already looking forward to the next one!
buildabandit_title

My entry was Build-a-Bandit, a Wild-West duel simulator game where you create a bandit with very stereotypical villain features and then send him to duel the sheriff and take money from the banks in the towns you visit. By adjusting attributes like how twirlable your mustache, and how tall your hat is, you also affect how your bandit fights.

Every slider corresponds to a relationship between two stats that I left ambiguous to encourage playing around. Going to one extreme or the other will rob you of the benefits of the other stat, making choosing your bandit dependent on the player’s preferred style. Do you balance your bandit in the middle, or make him a huge tank? The three scales (hat, mustache and eyes) are Firing Speed/Defense, Accuracy/Power, and Dodge Rate/Critical Rate respectively. Tweaking the hat size has the most noticeable effects, but all three play a huge role in behind-the-scenes numbers.

I surprised myself with how Build-a-Bandit turned out. I’m very happy with the final product. There are a ton of flaws, featureless gaps and things I wish I could have done, but I get the feeling most people can rattle off lists of should-haves after a timed event like this. I’d never made a game to a state this complete before, even accounting for the missing stuff, and while I was making Build-a-Bandit, I got to enter that coveted Flow State, where you’re so absorbed in the work that everything comes together with no distractions. Little problems that needed solving, I was able to solve without a lot of conscious thought, even though I might have trouble explaining why I came to the solutions I did. For me, that feeling was the biggest reward of Ludum Dare 25.

Other things that went right:

  • The Graphics: I’d never sprited anything in my life before this, but the wonderful ASEPRITE made it a breeze. A game with the concept of “create a fighting bandit using outlandish physical villain stereotypes instead of stats like Attack and Defense” needs to be able to sell that idea with the graphics, and I seem to have succeeded. A lot of comments rolling in are about how excited people were to make big mustaches and squinty eyes. My biggest regret for the entire project is not being able to implement comically tall hat sizes in the graphics as well. One commenter remarked that it was “tragic” that a towering hat didn’t translate to epic tallness in the duel, and I agree wholeheartedly. If I could fix one thing, it would be that.
  • Bug-free: I can’t know for sure, but from my testing and the lack of mention of bugs or crashes from commenters, I think Build-a-Bandit is clean. I made sure to test multiple restarts, game over conditions, graphical quirks, etc., and if Build-a-Bandit were a ship, I think it’d be seaworthy. Did this come at the expense of some features? You bet. But after being frustrated with only being able to rate about one entry in four that I try to rate due to bugs, crashes and missing packages, I do take pride in the fact that there have been no reported problems to date with BaB.


What I’d love to include in a post-compo version:

  • Hat tallness: As mentioned above, having one out of three physical traits not reflected in the duel graphics is a huge deficiency. The sad part is that this wouldn’t have taken much time to fix, and I probably would have if not for last-minute setbacks. I was originally going to do bandit body-size instead, but early in my spriting I realized that drawing different bodies and making the sprites line up would take far too much time. I switched to hat size to make things simpler, but never got around to going back and fixing the duel graphics.
  • Better visual feedback: It’s hard to get too into the character-building puzzle aspect if it’s not obvious what every aspect does. Given more time, I’d have loved to make miss, critical and dodge notifications on screen, and a dialogue box that showed what happened the last five shots or so. It would have been easier for players to grasp how the physical features are related, and would have given them a greater sense of control over the duel. I would have also liked to also make a screen where you could view the next sheriff’s stats, so try and anticipate what kind of bandit to make best suited for killing him.
  • Better balance: When the crux of the game’s fun is building just the right character to take on a carefully constructed enemy, you have to create just the right level of difficulty and a variety of challenges to give meaning to building many different types of bandits. What I managed to cobble together on the first day is far from terrible, and fine tuning this type of balance takes more time and playtesting than what’s possible in 48 hours, but this is the meat of the game, and if I decide to come back and polish the game, balancing the game to keep the player interested is a priority.
  • Naming your bandit: It’s a small thing, but I’d love to add a little box for naming your bandit. This was a feature I gladly cut for time, but it would add a little extra personalization to the bandits. As it is, the standard name for the bandit is “Crudely Knifeslash,” a play on “Snidely Whiplash.”
  • Minor graphical touches: The duel backgrounds would be nicer with more buildings, and if they were randomized or different for each town. I noticed that I didn’t add the sun. The death sprites are laughably bad and the work of two minutes as I rushed to put together something, anything. Maybe a woody texture for the backgrounds of the menus where the dark browns are, and an old paper texture for the lighter menus boxes. Different sheriff features and colors would be nice too.

What went wrong:
Only one big thing went wrong, but it almost caused me to miss the deadline, and I was late for work. I tried Py2exe and Pyinstaller to package Build-a-Bandit, and they both failed to work, hanging up or producing unplayable .exes or not including essential packages. From what I’ve read, other people have experienced same problem trying to package applications built with Pygame. I wasted 90 minutes on that garbage. Then I found a recommendation for cx-freeze, downloaded and ran it, and it was like the heavens opened and choirs of angels sang hallelujahs. No errors, no weird dialogue boxes or incomplete dist folders or anything, just an exe and all my assets that worked immediately.

All in all, I had a great time and I’m pleased that I managed to finish a game on my first try at Ludum Dare. Looking forward to the next one with you all!


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]