CISC440 S2017 HW4
CISC 440/640 -- Computer Graphics
Homework #4
Due: Tuesday, May 16
Description
In this assignment you will write a 3-D game using OpenGL and GLSL. You are free to be creative, within the constraints outlined below. You may work alone or as a pair. Both members of the pair must be enrolled in the same class 440 or 640 -- no "mixed" undergrad/grad pairs
Your game must have the following characteristics:
- An environment which consists primarily of 3-D objects, rather than 2-D sprites (although these are allowed). The view of the environment should not be purely plan or elevation, but rather something closer to isometric. Your camera may be perspective or orthographic.
 - User control through keyboard or mouse input
 - Objects must move smoothly, camera views (if they change) must change smoothly
 - At least one texture-mapped element
 
Possible game ideas:
- A simplified version of a retro game like Space Invaders, Asteroids, Q-bert, or Frogger
 - A simplified version of an already-simple recent mobile game (Crossy Road/Flappy Bird).
 - A turn-based "board game" like chess. The "smooth movement" requirement means that pieces must fly to their new locations -- you can't just click on squares
 - Billiards/pool/air hockey-like 2-D collision-based game
 - Your own wacky original idea
 
You may use any code from HW #1, HW #2, or HW #3 as a starting point, as well as any code from the OpenGL tutorials.
5 out of the 15 points of your grade will be for creativity/complexity. Things NOT to spend any time on:
- Sound
 - Opponent AI
 - Network play
 - Saving high scores or game state
 
Additional elements
If you are an undergraduate working alone, you must implement/include ONE of the following features. A graduate student alone or a pair of undergrads must implement TWO. A pair of grad students must complete FOUR.
- Simple physics: collision detection and normal forces (e.g. sphere-sphere or sphere-plane), gravity, etc.
 - 3-D or 4-D value/Perlin noise (this does not count as the texture-mapped element above)
 - Shadow mapping
 - Billboards/impostors
 - A scoreboard or other text-based overlay about what is going on (this also does not count as your texture-mapped element)
 - Multiple elements which are "lit" with diffuse and/or specular lighting.
 - "Complicated" 3-D objects (i.e., NOT platonic solids)
 - If you have another idea, ask me for approval
 
Submission
Submit your entire project folder -- associated textures and 3-D model resources should be included. Include a README to explain how you satisfied each of above requirements. You will also be asked to schedule an in-person demo session with the instructor after the deadline.