So, the game has been out for a few days now, and I've some chance to reflect, I figured I'd write down some notes.
As a pretty mature technology, there are a lot of libraries that people have created for XNA game programming. This is wonderful. I love using stuff that other people have made and provided for free. I'll even modify my own game design vision if I can find free tools that are cool enough to lead me in another direction.
When I first started playing around, I tried to implement Andy Shatz's lighting algorithm, with only moderate success. I was never really able to able to get it working 100% (my own fault). I soon after discovered the Krypton Lighting Engine, and immediately thought it was a better choice for my purposes. It was simple enough to conceptualize, but powerful enough to perform well and do what I wanted. My game isn't very light/shadow intensive, but it added some cool effects.
I also used the Mercury Particle Engine again, and will always continue to do so. There's absolutely no reason I can see for anyone to ever write their own particle engine while this thing still exists.
I also used Renier Prokein's character sprites, and am amazed at how much awesomeness he has just given away for free. Love it.
And finally, the key to the whole project was using the fantastic Spyn Doctors high score sharing component. This is an extremely well done peer-to-peer data sharing component, with nice documentation and example implementation (for sharing high scores). This is the backbone to the game.
When it comes right down to it, the game was kind of an experiment. Was it possible to do a persistent peer-to-peer world? A massive p2p structure isn't really something you can test on your own little network, either, so I did a lot of visualizing and thinking rather than coding and testing. I'm pleased to report that it works perfectly.
Releasing the game was a thrill, because the high score list started out blank, and the map started with default positions captured. But as time passed during release day, the high score list started filling up, and regions started being captured. In fact, with so little data per transfer, you could see people responding to previous captures, trying to head them off at the pass and so forth. With "Bad Golf", I had to wait a couple days for feedback, so it was neat to see people actually playing the game.
I'm also pretty pleased with the actual gameplay. I like the four weapons, and think they have distinct strengths and weaknesses. The enemies are ok, but maybe not varied or interesting enough. Initial testing indicated, though, that the gameplay was fun and addictive, and some of the high scores bear that out (you simply can't play the game over 500 times if it's really that bad, right?)
Adding the health drops were a late change, and I though they added a fun decision point. Go for the health that's in a dangerous place, or stay safe?
I was also put in touch with a student musician, and was pleased by the music he created for the game. My boy Eryn also created a really nice loading image for me, which was awesome.
After enough time passes, I simply lose motivation. The map data has things like elevation and biome type, and it would have been great to have more varied environments to fight in. I sufficed to change the background color of the ground, but that's it.
I also didn't realize how locked up the map would be once all the regions were full. New players were entering the game with only "Difficult" and up regions available. I wish I did more testing to realize that would be the inevitable result.
The reviews that I've read are pretty spot on. The game is good, but not great.
When writing the game, I didn't take any measure to data security. Spyn Doctor even warned me that my data files might be at risk, but I ignored his advice for security. I figured that if my game was popular enough to get hacked, then I was ahead of the game anyways.
So when it actually happened, when I woke up to see a high score of over 19000, I was surprised by my emotions. I was upset and pleased and happy and angry all at the same time.
I also released the game right at the end of a big list freeze, and also just before some other big names were dropped onto the New Releases list. So that timing wasn't optimal.
Given the success of the peer-to-peer persistent world, I'm encouraged to try something like that again. I'm also excited about my upcoming 1.1 patch that will fix some of the above problems (data security, difficulty issues), and I'm just sorry it wasn't part of the initial release.
In the end, I'm pleased with the game. I had secret hopes of it being a huge cult hit, but I'm happy that it all worked as well as it did.