B582-Spring 2000 - Programming Assignment #1
"Paddle Ball"
Goal:
To create a simple paddle ball game for the CAVE
CAVE Programming Concepts:
-
Simple animation and simulation
-
Interprocess communication through shared memory
-
Reading tracker values & controller values
-
Simple collision detection
Misc Info:
-
Due: Thursday, Feb. 3 by 5:00pm (demo in lab or before)
-
Value: 50 points
-
Sample Executable: available here (right-click
to save as, then use chmod 755 DemoPS1)
Tasks:
-
Run the sample executable and familiarize yourself
with its operation. Here's how the game is played:
-
The ball starts out on the ceiling of the (8 ft) CAVE in a random location
towards the center of the CAVE. (x in the range [-3, 3], z in the
range [-3, 0].)
-
Click the left wand button to release the ball. The ball travels
in a straight line towards the floor.
-
Move the disk-shaped paddle with the wand to knock the ball upward.
(You can also hit the ball from above to send it downward.) The ball
should bounce off the ceiling. Note that the orientation of the wand
does not affect the paddle, only the position.
-
If the ball hits the floor, you lose and the program selects a new starting
location and waits for you to press the left button.
-
Now code your own version of paddle ball. The basic operation should
be the same as the demo version; however, the specific look of the game
may vary. The ball follows a simple linear path at constant velocity.
-
Add any one of the Additional Features to your program.
(This is a requirement.) Additional features beyond the first one
will bring extra credit.
Additional Features:
-
Add better physics to the ball's bounce and include motion in the x and
z directions (with additional bounce tests for the walls.)
-
Make the game get progressively harder by decreasing the paddle size and
increasing the ball speed gradually over time.
-
Make the game get progressively harder by adding additional balls.
-
Build a library of shapes and have the ball change to a random shape on
each restart.
-
Incorporate texture mapping into the environment and onto the objects.
-
Keep a running score and display it graphically on the front wall of the
CAVE.
-
Incorporate wand orientation into the orientation of the paddle.
Modify your collision-detection routines accordingly.
-
Anything else you can think of ?