Game Engineering
 Spring 2016
Project 1:  Pong
Complete Playable Due 2/17/2016
Enhanced Version Due 2/26/2016


Pong is an old standby -- one of the first electronic games created. For your first project (which is essentially a warm-up, get you used to Ogre), you will be creating a version of Pong.

Getting Started

I have provided a skeleton project as a zip file which contains everything you need to get started:

This file contians source code, a visual studio solution to get you started, and some sample content (materials, models, overlay scripts and the like). Unzip this prety much anywhere you like and open up the solution file. Build and execute, and you should see a coin spinning and some text on the screen. The coin can be moved left and right using the arrow keys

A note on the project file

Ogre uses .dlls instead of statically linked libraries, so your project will need to be able to find the appropriate .dll files to be able to execute properly. I have added to the project, as a post-build step, commands to copy the appropriate .dlls from the SDK to the output directory. You are more than welcome to pursue a different solution for your project, see me if you have any questions.

But I'm using a Mac!  (or Linux, or some other operating system)

All is not lost! You need to get your fingers a little dirty creating the appropriate makefiles and/or xcode files. It will be a little more work, as you won't have a premade project/solution to start with, but it certainly can be done. Essentially, you need to point the makefile at the ogre object files (and .h files), and make sure that all the exeuctables are placed in the correct locations. If you can't get it working on your own from the Ogre wikis, come see me.

Complete Playable

For the first milesone, you need to have a basic version of Pong working. That is, you need to have a 1 player game, with a basic AI, simplistic physics, and scoring. All basic artwork (granted, it will be pretty basic) needs to be done, and the game should be playable, and reasoably fun (it's only pong, so the fun factor can be fairly limited). The camera can be static. This is "Classic Pong".

Enhanced Pong

For the final submission, you need to have a more interesting version of Pong. What is "interesting" is somewhat up to you. Various enhancements could include: It is recommended that you discuss your enhanced pong ideas with me, so that I can guide you towards more approprate projects (changing the color of the paddles, for instance, would not get you many points)


You must work individually on this project. Don't worry -- for projects 2 and 3, you will be allowed (and, in fact, encouraged) to work in teams.This one you need to do on your own, however.


Your code will be graded on the following metric
Note that a project that does not compile, or compiles and does not run, will recieve very few points, regardless of how much code you submit.


You should create a subversion directory that contains everything you need to compile and run your code, under <your username>/cs420/Project1/. Place all of your required source files, project files, solution files, etc into this repository. Be sure to preserve any necessary directory heirarchies. You should also submit all art required by your program. You should not include any object files, executable files, Ogre .dlls, or .pdb files in your submission! The size of your subversion directory should not be hundreds (or even dozens) of megabytes! You will lose points for submitting object files!

Place a README file at the top level of your subversion hierarchy which describes how to compile and run your game, along with all of the cool features you want be to be sure to see

It is strongly recommended that you keep all of your files in subversion from the beginnng of the project -- do not use subversion as a submit directory!