Metroid Lightspeed


Metroid Lightspeed was my second foray into XNA. I learned a lot about game development from Ardor, including the value of backing up your code. My most obvious lesson, though, was "don't try to make a huge, complex game first." Often the axiom for beginning designers/programmers is to "make Tetris". Well, I knew I could make Tetris. Actually doing so seemed like it would reinforce what I knew, but it wouldn't teach me much.

Top down shoot-'em-ups (hereafter begrudgingly called shmups) represent a unique class of game - aside from puzzle games, they might require the least amount of effort to convert into something fun, and no one cares if your art is really simplistic. You can make one with a few sprites, none of which need to be animated.

So I made a shmup. Not just any shmup! A Metroid shmup. I love Metroid. Ever since the NES days, when it was possible for 8-bit Mother Brain to instill a sense of fear that sticks to this day. The benefit of choosing a Metroid based setting was that a lot of the conceptual work was already done for me. This was a programming experiment, and design lessons would be incidental. Samus already had a ship, I didn't have to design one. She already has enemies, and the game's plot fit right in between Metroid II and Super Metroid - she already had a motive. All I had to do was draw sprites, program the engine, program the AI, and do enemy placement. I committed myself to a single semester project. My goal was to learn as much as possible in a limited timeframe. I was comfortable using someone else's IP, because I never really expected to finish.

It was the best learning experience I've ever had with programming. Inheritance, abstraction, generics - everything takes on new meaning when you're passionate about the results, and learning them not just for a grade. After I'd finished this project, I've often been heard to remark that I wish I could retake Computer Science 227/228 - my grades in those classes were low B/C range, and I'm confident that I could ace them with style now.

The game itself is still something I return to periodically, not to program, but to play. Sure it's simple, and the last iteration broke the boss AI (prompting me to learn more about version control), but there's something satisfying about the game. The visceral pop when enemies explode, the ssshweh sounds when you collect a powerup... good times. It features many of the classic weapons at the ship level, like the (now stackable) ice and wave beams. Weapons that don't appear until Super Metroid take the form of "cannons", which allow you to use the Spazer, Charge, and Plasma upgrades with Wave and Ice. The Varia shield reduces your ship's hitbox by half, and the Gravity engine allows faster movement through space.

All graphics except for the Metroid logo and title screen were hand-made in Photoshop. All sound effects are either freeware or self-recorded.

GContent: 
Some ship sprites.
An early iteration.
The title screen.