Tuesday, 10 July 2012

Post-Mortem: Space Vengeance

Here's the long awaited (cough cough) second of the quick post-mortems I promised way back.

The main menu. Nothing fancy here.

What was this game about?

Space Vengeance was mostly a silly excuse to do another video game for a college project. The true (academic-wise) purpose of this project was mostly to showcase our OpenGL skills. The name was our attempt at picking the most generic thing we could name our old-school space shooter. If I recall correctly I think we had a list of generic-sounding video game adjective (like retribution, vengeance, rebellion, etc) and we just added space before it.

Again, no artists to be found here so it looks like shit.

The ships actually rotated a bit when moving up and down.

What happened?

Well I'm sure any of you experienced programmers can imagine what happens if someone jumps into C++ and OpenGL rendering after previously making a game in flash. We spent most of our time trying to figure out "boring" things like why our ships weren't being drawn and why when they did so, they started flying sideways. It all went mostly fine tough and we kept to our schedule. We dropped some features like visually attaching "gun" modules to ships due to a mix of factors like our lack of 3D modelling skills and the .3ds importer we were using giving us enough problems as it was.

We gave up on the project after that class because it was too difficult to add new ships, levels, guns, etc, as everything had to be hardcoded and compiled and we didn't feel like our game would add anything to the genre.

How was it made?

  • Plain old C++
  • OpenGL for rendering, mostly
  • SDL for input and sound
  • lib3ds for importing 3D models
  • freetype for font rendering (I think, it's been some time and I'm feeling lazy)

Step right up for the final boss. He's big. He's (not) scary.
 And he moves up and down menacingly.

What did we learn?

That we should probably learn how to create cool shaders one of these days.

That simple things can make the game more enjoyable. We noticed huge improvements in the fun factor once I made ships blink white after being hit.

The more steps it takes to do something, the more half-assed the result tends to be and the easier it is to find reasons to put it off or just give up. This happened during power up creation (weapons for instance, had to be hardcoded and required creation of bullets, particle effects, etc) and level creation (levels consisted of several instances of a "wave" class that had to be compiled to a binary file and read by the actual game later).