2011/01/19

Bad Golf Post Mortem

So the cool thing that developers do when they release a game is do a "Post
Mortem". I'm not cool, but I want to be, so here I go.

Bad Golf was released on 12/24/2010. According to my notes, I started it near
the end of September, so that's almost three months of development (with some
pretty long stretches of inactivity in December). Actually, it was in peer
review for a while, so call it two months.

What Went Right:

I used two external libraries, the Farseer Physics Engine, and the Mercury
Particle Engine. Both of them I'd tinkered around with previously, and I had
pretty a pretty good handle on both going into the project. I've also spent a
LOT of time developing my own base game library. I didn't end up using most of
that, but it made it really easy to do all the menu screens and stuff.

Farseer has a "Texture To Physics" routine that basically takes a picture and
turns it into a physical object. This was huge. This meant that I could do all
my level design in Paint.NET, and didn't have to create a separate level
creation tool.

The Mercury Particle Engine is great. For the last two courses, I added a
"snow" and "rain" effect at the last minute. Easy peasy.

The original plan for the game (and hence the name) was to do a "fighting golf
game". Players would control little onscreen golfers who would hit their shots,
and then fight while running to their balls to hit their next shot. I like this
idea, but I quickly came up against some tough design issues. For example, I
liked having "islands in the sky" types of levels. How would the players
traverse the landscape when there were vertical cliffs, or how would they jump
up to an island? After getting the basic mechanic of aiming and hitting the
ball, I ditched the whole fighting idea.

Having a really tight design concept was important. I could always see the game
in my head (probably mostly because it was so heavily copied from Stick Golf for
the iPad). So the main concept and vision was always there. I just needed to
fill in the code.

It probably goes without saying, because I didn't really have a choice, but
using XNA worked great. I borrowed an Xbox from work, and all the deployment
and testing worked really well right out of the box. I got some good feedback
in playtesting, and the peer review process was generally good (but slow, as I
was so anxious to get it out!)

I was able to find some really good free images and sounds to use for menus and
whatnot.

Finally, I think my ability to compromise was huge. I realized Bad Golf wasn't
perfect, but also that it never would be. I constantly told myself that I was
just doing this for the experience of it all, and that it was OK to make
compromises if it moved me forward.

When you release an Xbox Indie Game, people download it for free as a Trial
version. They can play the game for eight minutes, and you can control what
content they see and do not see. After eight minutes, a popup comes up that
says "You can either quit or by the game". If they quit, they can start up for
another eight minutes, or if they buy the game, they immediately continue
playing. I initially was only going to have one course in the trial version, as
well as restricting the ability to save high scores. This would allow players
to play some of the game, and see other courses that were locked.

What I figured, though, was that it takes about 4-5 minutes to play through the
first course. I ended up releasing two courses for free. This would mean that
the player would play through the first course, and then start up the second
one, and hopefully be most of the way through it when the eight minutes
expired. It's really important, I think, to know exactly where the player is
when that timer comes up. You want them to be right in the middle of something
important, and not just sitting at a menu screen.


What Didn't Work

Art. I'm a horrible artist, and my attempts to enlist help in this area were
not very successful. Eryn was unfortunately too busy to help (and I'm not sure,
in all actuality, if he would have been able to do the amount of work that I
wanted without hating me). I posted on some message board and got some help
from a student in Germany, but just got the gut feeling that it wasn't going to
work out. I had to awkwardly "break up" with him, and I feel bad for that.

I finally was able to get some halfway decent stuff together, and with the help
of Photoshop's pre-built filters (drop shadows, etc) finally just said "screw
it" and forged ahead.

If I'd known how important cover art would be, I would have spent a little more
time on it. It's totally cheap, but I've noticed the games that feature a hot
chick on the front get a lot of attention. Am I beyond appealing to this kind
of base instinct? I'm not sure.

Level Design. Good, not great. Bad Golf has four courses of nine holes each.
I really wanted each course to have a distinct personality, and while I think
that succeeded, it was hard to come up with that many creative layouts. I
really like some holes, but on the whole, feel pretty blah about most of them.

The Bottom Line

Never owning an Xbox or being part of that scene, I really had no idea what to
expect with regard to sales. I just didn't want to lose money on the whole
venture, which means I'd need to sell like 130 copies. Actually, you only get
paid once you make over $150, so I needed to sell even more than that!
Thankfully, I surpassed that after only a day or two, and from then on, it was
all gravy. This has the unfortunate effect of setting my expectations much
higher for whatever my next game is.

Period Statistics (Dec 24 – Jan 16)
Trials: 6435
Purchases: 1300
Purchase/Trial Ratio: 20.20%

2 comments:

Unknown said...

Awesome. Really cool write up. I love this stuff. I'm still really proud of you (I don't mean that to sound condescending at all... hopefully it does not) going through the whole thing and publishing it. All the gravy is awesome too.

Adman said...

Thanks. Talking about it feels uncomfortably braggy, but it also feels kind of like it's not my doing anymore. I created the beast and set it free, and what it does now is totally beyond my control.

For what it's worth, I'm still proud of you for making your MAME machine. :)