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

Fall 2009

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


IM Classes Grades VHR


This page was last updated: February 1, 2010


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 Kinematic systems
  3. Understand how to solve for the motion of Forward Kinematic systems
  4. Perform rigid-body constant-acceleration physics with collisions
  5. Create a 3D particle system
  6. Understand 3D mesh simulation
  7. Understand the fundamentals of parallel programming
  8. Understand the fundamentals of multicore programming
  9. Understand GPU parallel computing paradigms, such as CUDA, Larrabee, and OpenCL
  10. 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://cs.oregonstate.edu/~mjb



Office Hours:

Sundays 7:00-8:00 (PM) Instant Messaging
Mondays 2:00-4:00 Kelley 2117
Tuesdays 10:00-12:00 Kelley 2117
Thursdays 10:00-12: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 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 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.

Most notes are given in one, two, or six slides per page formats. This is so that you can make the readability vs. print-pages trade-off.

Game Developer's Career Guide Here    
Parametric Lines 1pp 2pp 6pp
Vectors 1pp 2pp 6pp
Matrices 1pp 2pp 6pp
Transformations 1pp 2pp 6pp
Forward Kinematics 1pp 2pp 6pp
Newton's Method 1pp 2pp 6pp
Inverse Kinematics 1pp 2pp 6pp
Physics 1pp 2pp 6pp
Collisions 1pp 2pp 6pp
Particle Systems 1pp 2pp 6pp
Meshes of Springs 1pp 2pp 6pp
Cache Performance 1pp 2pp 6pp
Parallel Programming 1pp 2pp 6pp
Multithreading 1pp 2pp 6pp
CUDA 1pp 2pp 6pp
Larrabee 1pp 2pp 6pp
OpenCL 1pp 2pp 6pp
More Information PDF    



Guest Speaker Note Handouts

  1. Brian Apgar
  2. Dan White



Class Schedule

To see an academic year calendar, click here.

The class lecture time is: Monday, Wednesday, and Friday, 1:00 - 1:50. Unless otherwise specified, all lectures will be held in Kelley room 1001.

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

Vectors, I

3 Oct 2 Vectors, II
4 Oct 5 Matrices
5 Oct 7 Brian Apgar, Buzz Monkey, speaking on:
Hardware Matters: Multiplatform Game Development
6 Oct 9 Transformations
7 Oct 12 Transformation matrices
8 Oct 14 Forward Kinematics, I
9 Oct 16 Forward Kinematics, II
10 Oct 19 Solving nonlinear equations -- Newton's Method
11 Oct 21 Inverse Kinematics, I
12 Oct 23 Inverse Kinematics, II
13 Oct 26 Constant acceleration physics
14 Oct 28 Dan White, Pipeworks, speaking on:
Game Programming -- The Big Picture
15 Oct 30 Test #1 review.
Worksheets.
Collisions
16 Nov 2 Test #1
17 Nov 4 Go over test questions

Mechanical dynamics

18 Nov 6 Numerical integration
19 Nov 9 Particle systems
20 Nov 11 Meshes of Springs, I
21 Nov 13 Meshes of Springs, II
22 Nov 16 Cache Performance.
23 Nov 18 Parallel Programming.
24 Nov 20 Shared memory multicore programming
25 Nov 23 OpenMP, pthreads
26 Nov 25 No class today. I'll be in my office during class time. Treat it as Office Hours. Come by for any reason.
27 Nov 27 Thanksgiving Holiday -- no class today
28 Nov 30 CUDA, Larrabee
29 Dec 2 OpenCL
30 Dec 4 Class Evaluations.
Where to find More Information.
* Dec 9 Test #2 Wednesday, December 9, 12:00 - 1:20, Kelley 1001.



Projects

Project # Points Title Due Date
1 25 Register your Grade-Posting Alias September 30
2 50 Vector package October 8
3 75 Matrix and Tramsformation packages October 16 and 21
4 100 Forward Kinematics October 30
5 100 Inverse Kinematics November 2
6 100 Collisions and Bouncing November 11
7 100 Particle system November 23
8 100 Mesh of Springs December 8

Projects are due at 23:59:59 on the listed due date.

Bonus Days

Each of you has been 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

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: