CSC 471 Final Project
Carl Taylor


Download executable:
Windows 32-bit

Overview:

This program is a simple driving game. The user drives a vehicle around a small world with obstacles and scenery. There is currently no objective; this is meant to be an exploration of graphics techniques rather than an engaging video game. This could, however, be used as a codebase for a driving game.

Features:

         Hierarchical models � All models are hierarchically drawn

         Scenery generation � Grass blades, bricks and stars are randomly generated and displayed via hierarchical models

         User input � The user controls the acceleration and steering wheel angle of the vehicle

         Camera control � The camera follows behind and above the car as it drives around the world. The camera may also be pitched up and down

         Lighting � The sun lights the scene when it is up; when the sun is down, the light changed to reflect this

         Rigid body animation � The wheels of the vehicle turn smoothly to reflect the amount that the vehicle is turning. Additionally, the sun and the stars move as time passes

         Color interpolation � As the sun rises and sets, the sky�s color is interpolated over three phases to reflect the daytime, sunset, and sunrise

         Physics simulations � The vehicle has acceleration and a momentum that propels it along the path determined by the rotation of its front wheels

         Plane-based collision detection � The vehicle observes collision detection with both the trees and the walls. Tree collision is detected by the plane of the vehicle�s sides crossing a tree�s origin, and wall collision is detected by the plane of the walls being crossed by one of the four corners of the vehicle

Controls:

click and drag � pitch camera up and down

w � accelerate forwards
s � accelerate backwards
a � turn left
d � turn right
e � apply brake

r � toggle star rotation (will not be smooth)

 

Other notes:

This code is awful and should be broken up into many, many different files. This project�s purpose was exploration, and if I were to do this again I would organize it much differently.

Collision detection has some occasional problems as well. Sometimes when �pushing� into a tree for a bit, the front end of the car will actually pass through the tree.

Screenshots:


The opening view.

 


Night.

 


Sunrise.

 


Collision! Oh no!

 


Bricks colors and depth variations are randomly generated at the beginning of runtime.

 

References:

http://gamedeveloperjourney.blogspot.com/2009/04/point-plane-collision-detection.html
VERY HELPFUL plane-based collision detection tutorial

http://en.wikipedia.org/wiki/Momentum
Momentum refresher

http://www.batesville.k12.in.us/Physics/PhyNet/Mechanics/Circular%20Motion/turning_a_car.htm
Physics of turning cars