CS 419G -- CS Skills for Simulation and Game Development

Fall 2007

http://eecs.oregonstate.edu/~mjb/cs419g


IM Classes Grades VHR


This page was last updated: November 27, 2007


Announcements:


What We Will Be Doing (and Not Doing) This Quarter

This is not a game-programming course. We will not be creating any games (yet). Game and simulation development is very much a data and math-intensive activity. So, this is a middleware CS course that will fill in many of the missing pieces for those wanting to enter the simulation and game development worlds in a software tool-building capacity.

Similarly, this is only a little bit a computer graphics course. We will not be writing graphics programs, but you will sometimes be given graphics program skeletons to test your coding.

Even if you aren't looking for a job in one of these fields, you will likely find these fast-paced and varied topics useful and enjoyable.

CS 419G topics include:

For your programming assignments, you will have access to the graphics systems in OSU's Computer Graphics Education Lab (CGEL) in Batcheller Hall 244.



Prerequisites

Yes, we will be using calculus!



Learning Objectives

Upon completion of the course, students will have demonstrated the ability to:

  1. Manipulate geometry using vectors and transformation matrices
  2. Solve for the motion of Forward and Inverse Kinematic systems
  3. Perform rigid-body constant-acceleration physics
  4. Understand the fundamentals of parallel programming
  5. Understand the fundamentals of multicore programming
  6. Create a 3D particle system
  7. Understand 3D mesh simulation
  8. Understand massively parallel computing paradigms, such as CUDA
  9. Attend guest lectures from practitioners in the game development field



Professor

The class is being taught by Professor Mike Bailey.

Office: Kelley 2117
Phone: 541-737-2542
E-mail: mjb@cs.oregonstate.edu
Web site: http://eecs.oregonstate.edu/~mjb



Office Hours:

Sundays 7:00-9:00 (PM) Instant Messaging
Tuesdays 11:45 - 2:00 Kelley 2117
Wednesdays 1:00 - 3:00 Kelley 2117
Thursdays 12:30 - 3:00 Kelley 2117
    or, by appointment -- send email



The Virtual Hand Raise (VHR)

I recognize that it sometimes takes a certain amount of courage to ask a question or express an opinion in class. But, the worst thing of all is to not say anything! So, this class also has a feature called the Virtual Hand Raise. Click here to get into it. It will allow you to send me a question or comment, completely anonymously. I will answer all questions submitted this way at the start of the next class.



Textbook

I haven't been able to find a single textbook that covers all of these topics, so there will not be one for this class. Instead, I will hand out notes.

Warning: Just because you have notes doesn't mean you can skip class! The notes are just enough so that you can listen and discuss more, and write less. They are not meant to be complete. We will add lots to them in class!



Class Note Handouts

Warning: Please don't print these until you are told to. Some of them are still being worked on. They are here just to show you roughly where we are headed. Comments and suggestions on these notes are always welcome.

  1. Parametric Lines
  2. Vectors
  3. Matrices
  4. Transformations
  5. Forward Kinematics
  6. Newton's Method
  7. Inverse Kinematics
  8. Physics
  9. Collisions
  10. Particle Systems
  11. Parallel Computing
  12. MultiThreading
  13. Modeling the World as a Mesh of Springs
  14. CUDA
  15. Finding More Information



Guest Speaker Note Handouts

  1. Dan White
  2. Brian Apgar



Class Schedule

To see an academic year calendar, click here.

The class lecture time is: Tuesday and Thursday, 10:00 - 11:20. Unless otherwise specified, all lectures will be held in Kelley room 1001.

1 Sept 25 Introductions. Discussion of class objectives and how we will go about it.
Project #1.
Parametric line equation.
Vectors, I.
2 Sept 27 Project #1 (the web form) is due at 23:59:59 tonight!

Dan White, Pipeworks, speaking on: "The Big Picture of Game Development"
Attendance will be taken.

3 Oct 2 Vectors, II.
4 Oct 4 Davey Jackson, Garage Games, speaking on: "Come to Indie GamesCon"
Attendance will be taken.
5 Oct 9 Matrices.
6 Oct 11 Transformations using matrices.
7 Oct 16 Brian Apgar, Buzz Monkey, speaking on: "Hardware Matters: Designing multi-platform game code"
Attendance will be taken.
8 Oct 18 Forward kinematics (hierarchical transformations).
Solving nonlinear equations.
9 Oct 23 Inverse kinematics.
10 Oct 25 Test #1 review.

Rigid body, constant-acceleration physics.

11 Oct 30 Test #1
12 Nov 1 Rigid body collisions.
13 Nov 6 Rigid body dynamics.
Numerical integration.
14 Nov 8 Particle systems
15 Nov 13 Parallel computing.
Multiprocessing architectures.
Multicore architectures.
17 Nov 15 Multithreading programming.
17 Nov 20 Mesh of Springs.
18 Nov 22 Thanksgiving Holiday -- no class today
19 Nov 27 CUDA.
20 Nov 29 Class Evaluations.
Where to find More Information.
* Dec 7 Test #2 Friday, December 7, 9:30 - 10:50, Kelley 1001.



Projects

Project # Points Title Due Date
1 25 Register your Grade-Posting Alias September 27
2 50 Vector package October 4
3 75 Matrix package October 10
4 100 Forward Kinematics October 26
5 100 Inverse Kinematics October 30
6 100 Collisions and bouncing November 7
7 100 Particle system November 20
8 100 Mesh of Springs December 5

Projects are due at 23:59:59 on the listed due date, with the following exception:

Bonus Days

Each student is granted five bonus days, which are no-questions-asked one-day extensions which may be applied to any project, subject to the following rules:

  1. Up to 2 bonus days may be applied to any one project
  2. Bonus Days cannot be applied to tests
  3. Bonus Days cannot be applied such that they extend a project due date past the end of Finals Week
  4. Weekends and holidays are not considered in determining the number of days of extension, (so Friday-Monday would count as a single day of extension)

Click here to get a copy of the Bonus Day Submission Form. Fill this out and turn it in the next class period after turning in your project.



Project Turn-In Procedures



Grading

Grades will be posted through this web page. To protect your privacy, they will be posted by your alias that you give me in Project #1.

Click here to see the current grade posting.

CS 419G will be graded on a fill-the-bucket basis. There will be 9 projects and two tests. You get to keep all the points you earn.

Your final grade will be based on your overall class point total. Based on an available point total of 850, grade cutoffs will be no higher than:

Points Grade
800
775 B+
750
725 C+
700
675 C-
650 D+
625

Attendance at the Guest Lectures will count 5 points each, making it possible to earn a bonus of 15 points to add to your total.



Class Rules



Students With Disabilities

Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 737-4098.



Other Useful URLs: