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

Fall 2011

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


IM Classes Grades VHR


This page was last updated: April 10, 2012


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. 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 Inverse 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 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 12:00 - 2:00 Kelley 2117
Wednesdays 12:00 - 1:00 (oftentimes 2:00) Kelley 2117
Thursdays 1:00 - 2:00 Kelley 2117
    or, anytime my office door is open
    or, by appointment -- send email



The Virtual Hand Raise (VHR)

I recognize that it 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.

2011 Game Developer's Career Guide Here    
Parametric Lines 1pp 2pp 6pp
Vectors 1pp 2pp 6pp
Matrices 1pp 2pp 6pp
Transformations 1pp 2pp 6pp
OpenGL Compound Transformations Here    
Forward Kinematics 1pp 2pp 6pp
Newton's Method 1pp 2pp 6pp
Inverse Kinematics 1pp 2pp 6pp
Physics 1pp 2pp 6pp
Handling 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
Physics / C++ quiz PDF    
3D Viewing PDF    
CUDA 1pp 2pp 6pp
OpenCL 1pp 2pp 6pp
More Information PDF    



Guest Speaker Note Handouts

  1. Here are Brian Apgar's slides from his talk in class on October 12.

  2. Here are Dan White's slides in one, two, and six slide per-page formats.



Class Schedule

To see an academic year calendar, click here.

The class lecture time is: Monday, Wednesday, and Friday, 11:00 - 11:50. Unless otherwise specified, all lectures will be held in Kearney 305.

1 Sept 26 Introductions. Discussion of class objectives and how we will go about it.
Project #1.
Parametric line equation.
2 Sept 28 Project #1 (the web form) is due at 23:59:59 tonight!
Vectors, I
3 Sept 30 Vectors, II
4 Oct 3 Matrices
5 Oct 5 Transformation matrices
6 Oct 7 Forward Kinematics
7 Oct 10 Solving nonlinear equations -- Newton's Method
8 Oct 12 Brian Apgar, Buzz Monkey, speaking on:
Hardware Matters: Multiplatform Game Development
9 Oct 14 Inverse Kinematics, I
10 Oct 17 Inverse Kinematics, II
11 Oct 19 Constant acceleration physics -- projectile motion
12 Oct 21 Constant acceleration physics, II
13 Oct 24 Test #1 review.
Mechanical dynamics, I
14 Oct 26 Dan White, Pipeworks, speaking on:
Game Programming -- The Big Picture
15 Oct 28 Test #1
16 Oct 31 Go over test answers
Mechanical dynamics, II
17 Nov 2 Collisions
18 Nov 4 Prof. Bailey out of town -- no class today
19 Nov 7 Collisions
Particle Systems
20 Nov 9 Particle systems
21 Nov 11 Meshes of Springs, I
22 Nov 14 Meshes of Springs, II
23 Nov 16 Cache Performance
24 Nov 18 Parallel Programming, I
25 Nov 21 Parallel Programming, II
Physics / C++ Quiz, I
26 Nov 23 No class today. I'll be in my office during class time. Treat it as Office Hours. Come by for any reason.
27 Nov 25 Thanksgiving Holiday -- no class today
28 Nov 28 Physics / C++ Quiz, II
3D Viewing
29 Nov 30 3D Viewing
CUDA
30 Dec 2 Class Evaluations.
Test #2 review.
CUDA, OpenCL
Where to find More Information.
T2 Dec 6 Test #2 Tuesday, December 6, 12:00 - 1:30, Kearney 305.



Projects

Project # Points Title Due Date
1 25 Register your Grade-Posting Alias September 28
2 50 3D Vector C++ Class October 6
3 75 Matrix and Transformation C++ Class October 14
4 100 Forward Kinematics October 24
5 100 Inverse Kinematics November 2
6 100 Collisions and Bouncing November 11
7 100 Particle system November 21
8 100 Mesh of Springs December 5

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 past Test #2 during 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.

After the due date, after you have exhausted all your two eligible Bonus Days, projects can still be turned in for up to 50% credit, as long as you turn it in (1) no more than 2 weeks after it is due, and (2) before the end of Week #10. Send me an email letting me know you have turned this in, so I know to go looking for it.



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 8 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 10 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: