Millersville University Department of Computer Science
Dr. Roger W. Webster
CS475
3D Game Programming and Computer Animation
Sample Assignments
Laboratory
Assignment Six
Final Project
Roger
W. Webster, Ph.D.
Department of Computer Science
OpenGL Graphics programming, write a C++ program
using the MUOpenGLtoolkit API to:
- Final Project Assignment:
- Import the myroom.3ds file
and do all tasks assigned in assignment #1,#2,
#3, #4, and #5.
- Add to this assignment:
- Using the networking
object have the pickups controlled by the
server, i.e., the pickups are all the same in a shared networked world.
Use PICKUP_INIT to initialize all new users’s
pickups. Use the Server as the arbiter of the pickups, i.e., when a
person runs over a pickup the user must check with the server to make
sure it was the first person to pick it up (acknowledgement). Have the
Server change the pickups over time.
- Use the network demo
to send the info that each client needs (Streamer bullets) over the net
in packets
- When a client is out
of health (dead), then respawn to another
location in the world (randomly).
- Each weapon should
have different kill characteristics.
- Add splash damage
(decrement Health) if you shoot the walls too close.
- Use Health boxes to
gain health.
- Add a pickup for
Invincibility (timer)
- Add a pickup for
Invisibility (timer) [no radar, no rendering of the character to others].
- Have radar come up on
screen at startup with 3D (triangles can be used)
- Use Head Position for
the camera location so that the user will move when getting shot and
shooting and idle, etc.
- Have the user pick
his/her own character before running the game.
- Add a server command
to send the clients the characters that have been selected by all players
in the game.
- Add the grenade
launcher and be able to shoot a grenade.
- Add the grenade
bouncing off the walls (and the sound as it hits the wall).
- Add grenade explosion
(alpha tga of explosion).
- Add grenade explosion
sound when it goes off

Laboratory
Assignment Five
CS475
3D Game Programming and Computer Animation
Roger
W. Webster, Ph.D.
Department of Computer Science
Computer Animation and Networking
Assignment
OpenGL Graphics programming, write a C++ program
using the MUOpenGLtoolkit API to:
- Import the room.3ds file and
do all tasks assigned in assignment #1, #2 and #3, and #4.
- Add to this assignment:
·
Use the Computer Animation Demo and add
characters to your world.
- Using the networking demo
make a game where each person is an animated character in a shared world.
- Use the network packets to
position, orient, and animate the character.
- When you shoot the char have
the animation pain-right, pain-left, death_back,
and death-front based upon collision detection shooting with the Cal3D
character. Bone numbers are returned from the collision call. Weight
health by bone num, i.e., head shots, legs, arm shots vs
chest shots.
- Use the check_ray_collision() demo code
to determine if you have shot the characters in the game.
- Use the network demo to send
the info that each client needs (tracer bullets, etc) over the net in
packets
- When a client is out of
health (dead), then respawn to another location
in the world (randomly, i.e., timeouts).
- Program the Server take care
of init the pickups and sending each client the current pickup list
- Program the Server take care
of choosing the level (3 different levels to choose from).
- Program the Server take care
of each client choosing their character (jpgs of
each char on the screen).
- Each weapon should have
different kill characteristics
- Add splash damage (decrement
Health of all ‘near’ the wall) if you shoot the walls too
close
- Use the check_ray_collision() demo code
to make bullet hole decals in walls and objects around the world.
- Use the Pickups Tool Software
to spread pickups: health, guns, spawn positions
around the world.
- Use Ammo box pickups
to pick up ammo
- Use Health box pickups
to gain health.
- Use Weapons on the
floor to gain a weapon (run it over and make a sound).

Previous Assignments
CS475
3D Game Programming and Computer Animation
Laboratory
Assignment Four
Roger
W. Webster, Ph.D.
Department of Computer Science
OpenGL Graphics programming, write a C++ program
using the MUOpenGLtoolkit API to:
- Shooting an Animated
Character Assignment:
- Import the myroom.3ds file
and do all tasks assigned in assignment #1, #2 and #3.
- Add to this assignment:
4. Load
an animated character and make that character idle (animation).
5. Position
the animated character in front of the view in the correct position.
6. Test
all animations with keystrokes (walk, run, jump, turn, shoot, get shot, etc).
7. Also
use the following animations: pain-right, pain-left, death_back,
and death-front based upon collision detection shooting with the Cal3D
character. Bone numbers are returned from the collision call.
8. Use
keystrokes to change the animated character’s weapon to all the 9
different weapons the first person shooter can have.
9. Use
keystroke to draw the collision boxes around the character’s bones, check
for holes.
10. WASD to
move around, left mouse button should shoot.
11. Guns and
pickups the same as assignment #3.
Good Luck
CS475 3D Game Programming and
Computer Animation
Laboratory Assignment Three
Roger
W. Webster, Ph.D.
Department of Computer Science
OpenGL Graphics programming, write a C++ program
using the MUOpenGLtoolkit API to:
- Import the myroom.3ds file
(from MU ¼ life demo) and do all tasks assigned in assignment #1 and #2.
- Add to this assignment:
1. Use
the GunClass Demo of 3D models of weapons with
realistic texture maps and use the gun sounds.
2. Position
one of the weapons in front of the view in the correct position as the user
moves around the world.
3. Be
able to switch weapons with F1-F9 keys.
4. As
the user moves around the world make the weapon move appropriately.
5. Load
your room model as the world to move around in.
6. Load
some 3Ds models of objects around the world to shoot at (barrels, pool, tv, etc).
7. Shoot
decals of bullet holes on the walls and barrels and other objects with CheckRayCollision() calls
8. Program
the gun pickups, as the user moves around he can pickup guns (using the levelcfg program).
9. Program
the Spawn points (for now hit F11 to die and respawn
to a random spawn point using levelcfg).
10. When you
die, you then give up all weapons that were picked up (default guns: knife,pistol,machinegun).

Good Luck
CS475 3D Game Programming and
Computer Animation
Laboratory Assignment Two
Roger
W. Webster, Ph.D.
Department of Computer Science
OpenGL Graphics programming, write a C++ program
using the MUOpenGLtoolkit API to:
- Collision Detection
Assignment:
- Import the myroom.3ds file
(from MU half life demo) and do all tasks assigned in assignment #1.
- Add to this assignment:
- Do collision detection
with the walls and do a wallslide when the user
collides (see demo)
- Make the user can go
up any and all ramps (smoothly)
- Make sure the user can
not leave the rooms and get outside the building
- Make sure the user can
not get stuck in corners
- Make sure the
movements are smooth (tweak wallslide)
- Make sure all textures
are either TGA files and height and width are powers of two
(64x64,512x512,etc) or JPG or BMP
- Play a background
sound while the user moves around
- Add WASD and E to move
around (see demo).
- Do collision detection
with objects in the rooms (barrels, pool, tv,
etc)
- Make sure the scale of
the room and the objects are appropriate (barrels, tv, doors, etc).
- load the guns from the
GunDemo code (see web site for GunDemo code)
- See http://cs.millersville.edu/~webster/gametechnologytrack/demos.html
for code pieces.

CS475
3D Game Programming and Computer Animation
Laboratory Assignment One
CS475 3D Game Programming and Computer Animation
Roger W. Webster, Ph.D.
Department of Computer Science
Getting
started: Modeling 3D objects.
Texture Mapping and Modeling in a Modeler (3D Studio Max)
- Use 3DS MAX modeler to edit
the world in the demo shown in class:
- Fix the normals (see demo)
- Make framed pictures
on the walls be MU things and MU faculty.
- Fix some of the
textures
- Check the lighting
- Add a transparent
texture to an object
- Check the passage ways
(doors and passageways)
- Fix all messed up
items
- Use demo program to
load and check the model
- Add to the demo program
- Load N barrels (as
separate objects) around the world
- Model each barrel in
3ds at the origin
- Add function keys
F1-Fn to pitch, yaw, roll, and move one barrel
see http://cs.millersville.edu/~webster/gametechnologytrack/demos.html

Good
Luck!
CS475 3D Game Programming and
Computer Animation
Laboratory Assignment Two
Roger
W. Webster, Ph.D.
Department of Computer Science
OpenGL programming, write a C++ program using the MUOpenGLtoolkit API to:
- Download the ShellDemo and the WASD demo as sample code to use.
- Modify the ShellDemo program to:
- Import the room.3ds file from
assignment #1 into your OpenGL source program.
- Make sure all textures are
either TGA files and height and width are powers of two
(64x64,512x512,etc) or JPG or BMP
- Position the viewer (camera)
in the center of the room.
- Attach the mouse so the
viewer (user) can move around (not WASD).
- Add lights
- Collision detection with the
world (see handouts)
-
- add a function for keyboard
input to:
- move
to various positions in the world (user types numbers 1-5 on keyboard).
- reset to the original
viewpoint pos and orientation (‘r’ key)
- quit with
‘q’ key or esc key
Good Luck
CS475
3D Game Programming and Computer Animation Assignments
Roger
W. Webster, Ph.D.
Department of Computer Science
Networking
and Animated Character Game

·
Read all the research papers and all hands outs
given in class.
·
Load 3D models of six weapons with realistic
texture maps.
·
Each weapon should have different behavior.
·
Position one of the weapons in front of the view
in the correct position as the user moves around the world.
·
Be able to switch weapons as the user picks up
the weapon around the world.
·
Keep track of ammo amounts for each gun
·
Keep track of your health
·
As the user moves around the world make the
weapon move appropriately.
·
Load your city model as the world (urban city)
to move around (use wall slide collision detection).
·
Put up a fence around the far outside of the
city so the user cannot leave the city.
·
Load some 3Ds models of vehicles around the city
to shoot at.
·
Left mouse press should fire the weapon (move
the weapon) use WASD to move around.
·
You can use the picking demo code to determine
if you have shot any objects
·
Program the code to be a network game with each
user becoming the next humanoid Cal3D animated character.
·
Use 3ds max rigged characters, (Cal3D) you must
animate one that hasn’t been animated yet.
·
Program the animations for idle, walk, run,
jump, shoot, getting shot, death1, death2 to be sent over the network
·
Program tracer bullets to be sent over the
network (so we can see two people shooting each other).
·
Use the tga animation
object or particles in muopengl toolkit to explode
the blood object.
·
Use
MultiPass
textures to splatter blood on walls or shoot out walls (holes).
·
Add Radar to see all the opponents connected and
playing in the game.
·
When a person dies, re-spawn them in random
locations around the world.
Good Luck
CS475
3D Game Programming and Computer Animation
Laboratory Assignment One
CS475 3D Game Programming and Computer Animation
Roger W. Webster, Ph.D.
Department of Computer Science
Getting
started: Modeling 3D objects.
Texture Mapping and Modeling in a Modeler (3D Studio Max)
- Use 3DS MAX modeler to edit
the world in the MU ¼ life demo:
- Make framed pictures
on the walls be MU things and MU faculty.
- Make the under the
bridge place a passageway out (users get stuck there)
- Fix some of the
textures
- Fix the transparent
textures
- See if there are
passage ways to be created (doors and passageways)
- Make furniture look
realistic
- Make barrels and boxes
be separate objects one can shoot
- Fix the pool and make
it a separate object to shoot
- Fix TV screen to have
a pic of MU
- Fix all messed up
items
- Use demo program to load
and check the model
- Add to the demo program
- Load N barrels (as
separate objects) around the world
- Model each barrel in
3ds at the origin
- Add function keys
F1-Fn to pitch, yaw, roll, and move one barrel
- Load the pool as a separate
object (3ds at the origin)
- Position the pool in
the correct room
see http://cs.millersville.edu/~webster/gametechnologytrack/demos.html