Collide

Annabel Hung

CSC471 Winter 2010

Collide is a simple 3D game I made for my final project. The user can move the spotted yellow ball around the environment to absorb the other balls. The only rule is a ball can only be absorbed if its size is less than or equal to the size of the spotted ball. Each time the ball absorbs five other balls, it will grow in size, up to a maximum of four times. There is no goal or time limit; just enjoy absorbing balls!

Controls

The following keys are used to control the ball's movement:

w – forward

s – backward

a – left

d – right

r – reset the ball's radius

All objects remain on the ground. There are no flying balls in this game!


Concepts

The following concepts we learned from the course are utilized in this game.

Camera: The camera in this game is always focused on the spotted yellow ball. It is placed above and behind the ball. Whenever it moves, the camera will adjust appropriately. Zooming and rotating has been disabled.

Lighting: There is one light placed above the grass field that illuminates the entire scene. Control of the light is disabled.

Transformations: The actual movement of the ball is a result of directly changing the coordinates of the ball. The changes are made depending on the keys pressed by the user. For example, pressing 'w' to move the ball left will decrease the x coordinate of the ball.

Texture mapping: The field plane and each of the balls have a texture applied to it. I created each of the textures by doodling using GIMP. The grass and yellow spots textures are used only for the field and the user-controlled ball, respectively. The other balls have their textures selected randomly when they are created.


Screenshots

The ball is not large enough, so it simply moves through the larger ball without absorbing it.

The ball is larger than the pink one on its right. Shall we run it over?

Now it's gone!



Resources

I used the following resources to complete this project:
CSC471 lecture notes and slides
OpenGL A Primer: 3rd Edition, by Edward Angel