Monday, March 12, 2012

Postmortem

I was reading through some of my last posts for this blog and I decided that I wanted to make a post that talked about where everything went and what happened in the end. We submitted our game and got through the peer reviews and you can now buy The Last Pod Fighter for a buck. We haven't had nearly as many sales as the other teams - Minions! sold like 10,000 copies in the first few months and is still extremely popular, and Mr. Gravity was pretty popular as well, breaking the $150 mark in just a few weeks if I remember correctly. It took us almost seven months just to break the $150 sale mark, and as of the time of this post (nearly a year later), we've only sold 163 copies, earning us a hefty $9.10.

Even as we were releasing it, we knew there were some things that we weren't entirely happy about, and I suspect that had we had time to address those issues, it would have been a much more successful game. I also suspect that cutting arcade mode out of the demo (which we thought would entice people to buy it so they could unlock it) was a huge mistake, since this meant that people only got to experience one tactical pod - the Nuke pod. The "hook" of the game is the different pods, and we gimped the demo by not allowing players the chance to play with them.

One of the complaints we got in video reviews was that the game never changed levels. We had planned different levels for each capital ship, but we eventually gave that up because our artists never found the time to make more sky-boxes. Another was that the stages were too long, and dog-fighting wave after wave of ships before reaching the capital ship got tedious. Our decision to make the stages increase in time with each new level was clearly a bad choice, though hardly anyone that plays the demo can even get to the second level.

Which leads to LPF's third downfall: the game is too hard. Despite the fact that we pop up little hints about how to beat each capital ship (as well as instructions for each type of pod, ship maneuvers, dodging etc.), nobody seems to read them, which makes the game extremely difficult to play. For example, in the very first capital ship battle we pop up a hint about how lasers hardly do any damage to the ship, so you have to find some way to deliver a bigger punch. Right around that time, the fighter ships start dropping Nuke pods, which will defeat the capital ship in three or four shots. Time and again though, I've seen videos of people playing the demo, skipping past the hints, and trying to fight off the first capital ship with lasers. They also seem to ignore all the fighter ships around them (ships that will drop the Nuke pods necessary to defeat the boss) and just focus on the capital ship. We thought that if we made the fighter ships annoying enough that people would want to get rid of them, plus it's a classic boss-battle tactic - fight the boss until he spawns some minions, kill them all, then go back to the boss. Sadly, nobody really seems to catch on to the pattern, and though I still don't know what we could have done to change that, it is entirely our fault for making it that way.

Finally, our biggest mistake was that we made the game too "arcade like" in that when you die, you completely start over. I've often thought that we should have just had them start at the beginning of the current stage because if you get all the way to the space station and die, it SUCKS to have to start all over again. We did it thinking that it would make people want to play it over and over again so that they could beat it, but we seriously misjudged our target audience. People who buy and play XBox Live Indie games don't necessarily want to grind at those games, especially if they only spent a buck on it. They want something they can play for maybe an hour or so and be done with it. They want more casual games, games they can pick up and play when they're bored but don't require very much effort, and LPF requires a serious amount of effort in order to get good enough at it to beat it.

I'm sad about our game's lack of success, but a person learns more from his failures than he does his successes, and I'm grateful for the lessons learned. In future endeavors, I'll make sure that people have as much fun playing the game as I did making it. :)

Tuesday, March 29, 2011

More Polish

This week I've been working on making the game feel more arcade like. I tweaked a few variables in arcade mode to give it a more "wave-like" feeling. I also tweaked the capital ship AI to make it feel like more of a fight. In attack mode, they approach you slower so they have more time to fire at you.

I also changed the turrets a little. I widened their range of movement to a 180 degree dome. This makes it a little easier for them to fire at you. I also tweaked the AI for the second cap ship so that the weak point isn't enabled until you destroy all of the turrets. That makes the second fight a little harder and a little more involved. To compensate, I reduced the shield strength of the turrets as well, and I think I'll make them vulnerable to weapon and big bomb pods so it's not so hard to kill them.

Friday, March 25, 2011

Polish and Submitting

The last few weeks have been all about polishing the game and making sure everything works and looks nice. Also, we submitted our game to the XBox live community for play testing. We got some good feedback about the game and a bug that we hadn't caught that has to do with saving and loading the scores. Daniel was going to look into making it a synchronous call so that the game waits for the data do save/load and hopefully that will fix it.

I worked on the sound system - the framework for making our sounds 3D was in place but wasn't being used. I also fixed the problem with too many sounds being played at once so there was a lot of distortion. I edited the song Burning ambition so that it looped and made the music loop when it finishes. I also trimmed the gravity sound effect and made it loop in the player instead. That way it can play as long as the effect is active.

I made a new sprite sheet for the cap ship weak point. Brandon showed me how to do lightning in Maya so I made a lightning ball and colored it purple. I also shrunk the normal maps and color maps for the ships to reduce our project size. I changed the health meters to correspond to the ship that's currently targeted and I added some lines to the radars to make them look more like radars instead of just circles. I also added a new menu screen background and separated the title into its own image so we can make sure it's title safe.

I finished up the turret class for Jason and Wilson. They were really close but they had never worked with models before so it was a little tough for them to finish. I also added code to the AI class so that the ships bug out after a certain amount of time if you haven't killed them. They only do it if you're not in phase 3 since you need to kill the ships in phase 3 to collect the tactical pod. I also got random ships to spawn in phases 1 and 2 so it's not just scouts. Only ships you've already seen up to that point will spawn though.

I worked on a few of the suggestions from the industry professionals that came to our class. One of them was to change the targeting system so that you're always targeting an enemy, and clicking L3 just targets the enemy in front of you instead of toggling it on and off. I tweaked the controls so that you can always barrel roll with the bumpers and change targets with D-Pad up and down.

Friday, March 11, 2011

Wrapping things up

We're just about done with all the functionality. Right now survival mode is done and we're finishing arcade mode. We need to get the space station in and tweak the capital ship battles. The AI for the capital ships is different than the rest of the fighters, so Pace and Felix and Daniel have been working on that.

There's just been all these little tweaks and things we've been meaning to get in but haven't been able to until now. I got trails to appear behind the pods, but engine trails for the ships are a little processor intensive so we're not using them right now, though the system is in place. I got maneuvers in the system - a barrel role and two immelmann rolls (up and down). The screen shakes when you get hit and the controller rumbles when you're getting low on health. The HUD is now title safe and scaled to the screen size. Felix and Jason started the Energy Ball system and I finished it up. It uses an animated sprite. I got them charging and firing at the player for the capital ship and just firing for the bombers. I put shields in the game so if you get hit or an enemy gets hit their shields light up. Also, if you use a shield pod your shield glows blue for a few seconds.

I fixed the texturing issues on the xbox - the glow maps were screwed up and the texture mapping was all distorted. I fixed an issue where the animated sprites weren't being positioned correctly because the field of view was changing. Finally, I cleaned up most of the content - I got rid of stuff we weren't using and renamed everything to be more consistent. I still have to go through and convert everything to png's and jpg's and adjust the resolution on some of the bigger textures to save space.

Friday, February 18, 2011

More graphics

I haven't been very good at posting this semester, but I have been doing a lot of work on the graphics system. I added an animated sprite management system which I think is more efficient than trying to do particles. I didn't get rid of the particle system, but for certain effects (explosions, gravity well, plasma balls, ship energy centers) I decided that an animated sprite would look just as good as particles. I also added explosions and the gravity well effect using the animated sprites.

I also added a space dust system. Basically it generates a few random white spots around your ship that you fly through to show that you're moving. When the sprites get behind the camera, they respawn in front of your ship. I also had to put in a case for when the ship is going in reverse to handle spawning the sprites a little differently.

Finally, I added the icons for the shield, weapon, gravity and big bomb pods for the hud. I had to tweak the images a little because we wanted them to be color coded with the buttons that activate them.

The next thing I have to work on is getting some kind of trailing system in place. We want a trail to go behind the pods as they shoot and also coming out of the engines of the ships. We could do it using particle effects, but I'm also looking into trying something with the post processing system to see if I can get it to happen in the glow pass. I'm thinking of maybe adding another texture to the model that gets blurred and fades as time goes on.

Tuesday, February 8, 2011

Glow manipulation

I did a couple more things to the graphics engine to allow the glow to be turned on and off for certain objects. Namely, I made it so the pods only glow when they're in use. I also had to tweak my custom shader code because the normals weren't showing up correctly. The models were being drawn flat with no shadows. I figured out that this was because the actual normals of the ship weren't being used - just a normal map. What's supposed to happen is the normal map is used like a filter through which the actual normals of the models get passed. Without the actual normals, the normal map doesn't do anything.

I also tweaked the targeting mechanism so that not only does it consider distance of the enemy when deciding which enemy to lock onto, but also the angle between it's relative position to the player ship and the player ship's forward direction (in other words, how close is it to the player's targeting reticle).

Friday, February 4, 2011

Graphics engine overhaul

I should have posted this yesterday, but I forgot to. I re-vamped the graphics engine to accommodate post processing. As of now I have a glow post process implemented. To make an object glow, we give it a glow map - a texture mapped to the uv's of the object that's black except for where we want the object to glow. The new system renders the scene to a render target instead of the screen, and then blurs the areas of the image where the glow textures are mapped before drawing it back out to the screen.

I also finished up the lasers, though if I can get a post processing/particle effects trail happening, I might redo the lasers again to make them more efficient. In order to get them to be the right shape, I had to make 3D models instead of just billboard sprites, but if I can figure out how to make a trail behind an object, I'll go back to the sprites. I have to work on the trail anyway for the ships and the pods, so if i can get it working right I'll try it out on the lasers too.