Your CS184, Fall 02

Ender's Game, The Game

So we started out our project with one requirement: it had to be awesome. With that in mind, we looked at the actual requirements and decided that some sort of video game would cover the most points. After many discarded ideas, we finally settled on this.

Taking ideas from the Ender's Game, we created a giant gravity-less "Battle Room." The two players can use their magical gravity suits to apply thrust in various directions. They can manipulate around the giant floating "Stars." The point is to manipulate yourself in such a manner as to disable your opponent with your laser beam, while avoiding taking damage yourself.

Features

Trying to fit within the project guidelines, we implemented the following into our game:

  • Full 3D controls. Each player has 6 degrees of freedom in the air, and 2 on the ground.
  • Really neat textures. The textures are pretty good. Custom made, and all. I thought they were pretty good, anyway.
  • Models. Procedurally generated environment that is different each time the game load, and articulated characters that walk, fly, and shoot
  • Locomotion. By turning on gravity characters are able to walk. With gravity off, characters can move and orient themselves in any direction.
  • Terrain Following. With gravity on, models can walk on a flat surface. Missiles follow a bezier curve and home onto opponents.
  • Collision Detection. Static detection, characters will rebound from walls and stars. The rebound vector is consistent with the orientation of the surface it rebounds from. Dynamic detection, collision between characters in montion is handled and conservation of momentum is implemented. Also, hit detection by lasers and missles are also calculated using a ray-sphere-intersection algorithm.
  • User Interface. Multiple camera angels implemented. Cameras and objects are steerable in 3D.

Instructions and Controls

Below is a mapping of the player's keyboard controls. When on the ground, only the left/right and forward/back controls are available. Gravity is enabled. The fire button shoots a laser that goes straight ahead. The missile button (only available on first player) shoots a homing orb out the side that tracks the second player, and explodes if it hits an obstacle or flies too long. Player 1's keys are on the right, player 2 is on the left.

  • Red: Directional rotation
  • Brown: Roll
  • Blue: Directional thrusters
  • Dark green: Accelerate
  • Yellow: Reverse
  • Light blue: Fire lasers
  • Magenta/pinkish: Full stop.
  • The other green button on the right side: Player 1 missiles.

Screenshots

The following are some screenshots of all the awesome things that go on in the game. This includes firing, walking, flying around, and whatnot. The first is just a screen of the game as it starts. The second image is one where the second player is enabled. The third is a screenshot of player 1 on the ground, walking as gravity is enabled. The last one is of the awesome homing missiles that player 1 can fire at player 2.











Random Bits of Information

The models were modelled in Wings3d, then animated in Milkshape. They were exported to Quake2 format, then imported into slide. The only way we could get SLIDE to work with the complex geometry and high number of frames was to import each frame as a separate model, then toggle visibility to make it look animated.

We soon discovered that SLIDE couldn't actually deal with texture coordinates the way we needed to use them, so we settled for the results that we got. The textures on the model aren't correct, but they looked good, so we left it.

Because the stars are randomly generated, the program crashes on startup. Also, due to the thousands and thousands of lines of geometry, it sometimes crashes on startup. Essentially, due to the complexity, the game is relatively unstable in the beginning. But after the second player is activated properly, it works fine.

:: site updates ::

1/1/2001 - even more new stuff

12/1/2000 - more new stuff

11/1/2000 - new stuff

10/1/2000 - yadda yadda yadda

  2002 We are AWESOME Productions - All rights reserved.