NFL Madden 2006 - Electronic Arts

CS 378 - Game Technology

Spring 2006


Half Life 2 - Valve


Homework 1

Bouncy Ball

In this homework, you will write an application that opens a window and displays a 3D bouncing ball on a flat surface. Your application should have the following features:

  • A 3D flat surface (ground) texture mapped

  • A 3D ball that bounces on the ground

  • Both the ground and the ball should be illuminated

  • A Frames Per Second Counter at the top (not in the window caption)

  • The window should be resizable and should update the screen accordingly when resized

  • One optional feature selected from the list below

The following incredible drawing demonstrates the desired screen:

The following features are optional and can be implemented for extra credit: (you're expected to implement one of these as a part of the assignment)

  • Shadow of the ball on the ground

  • User input to guide the direction of the bouncing ball

  • Partially reflective (mirror like) ground

  • Motion blur for the ball

  • A spinning ball - This means the ball has an angular velocity that is maintained. You should also texture - map the ball to demonstrate this.

  • Anything else you can imagine

This is an individual project. You can not work in groups. You can use OpenGL, any user interface toolkit and tools for text display in OpenGL and reading textures. Anything else must be your own creation.

What to turn in:

  • Source code that compiles on Windows (either through Visual Studio 6 or Visual Studio .NET). These compilers are available on the instructional Windows machines in TAYLOR HALL

  • Any extra library/header file your project needs

  • Any extra assets (textures etc...)

Place everything in a top level directory and turn in a zipped version of that directory. I should be able to compile your project by simply opening the project file from Visual Studio and hitting "Build". Make sure the extra directory path is set in your project.

This is very important. In your future projects, pay special attention to modularity and creating self contained source code that compiles on any machine that has Visual Studio. Please spend some time with Visual Studio and make sure you can tell it where to find everything relative to your source code so that it can compile on any machine with a single command.

Due date: March 7th (Tuesday)


The following images show you where you can set the additional include/library directories in Visual Studio .NET. (Right click on the project you want to edit  and hit "Properties"):