CS 174a Arcade Game

The first assignment in CS174a, 1996-97, was to write a video game in C++ using OpenGL and the Glut toolkit. I wrote this, inspired by Space Invaders, over that weekend. There was an unofficial competition for the coolest game... out of about 30 people, I was one of the two winners. Peter Schröder called it the "Best Remake of an Arcade Classic."

Screen shots

All objects (aliens, bullets, bombs, the good guy) are filled polygons, which lets an OpenGL system with hardware acceleration render them really quickly. Things really rip along, even on our old Indys. It also made it easy to draw the same object at different sizes (see next image). A menu option lets you switch between filled and outline polygons. The space ship is controlled by the mouse.


Exploding ships turn white and fade out to gray, as the outline of the shape grows larger. This looks a little like the effect in those old Star Trek episodes when something was shot with a phaser. Here, four aliens and the player ship are in the process of blowing up.


Every 100 points, the aliens start dropping green and blue bombs, which give you weapons upgrades instead of blowing you up. It's possible to get upgrades for the ship's weapons that let it fire more rapidly, and through three turrets instead of one. Note that upgrade status is indicated in the status line at the top of the screen. "Shot speed" is actually shot delay; the smaller the number, the faster you can fire.


Once you have enough upgrades, you can wipe out entire waves almost instantly, although I managed to get killed anyway.

[too many toys]

the README file I submitted with Lab 1

	The game is Space Invaders, but the last Space Invaders game I played
	was called Swoop so I named it after that.

	You move around with the mouse.  It only looks at the horizontal
	component.  You fire with the left mouse button.  Whenever the score
	is a multiple of 100, the aliens start dropping good bombs instead of
	bad bombs -- they give you rapid fire and triple shots.

	Every alien has one bomb.  Any given turn, there is a chance that they
	will drop their bomb wherever they are.  If they don't do that, and
	they're directly over the player they will drop their bombs.

	After you die, you can't restart the program or anything -- quit it
	and run it again.