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

Fall Quarter 2012

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


IM Classes Grades VHR


This page was last updated: April 13, 2013


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. A certain number of actions must be produced, and producing them by hand is hard. 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:

If you need a place to do your programming assignments, you can get 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 bouncing
  5. Perform collision avoidance
  6. Create a keyframed animation
  7. Create a 3D particle system
  8. Understand 3D mesh simulation
  9. Understand the fundamentals of shared-memory multicore programming
  10. Understand GPU parallel computing paradigms, such OpenCL
  11. 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
Tuesdays 9:30 - 11:30 Kelley 2117
Wednesdays 12:15 - 2:00 Kelley 2117
Fridays 9:30 - 10:30 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.

2012 Game Developer's Career Guide Reader PDF  
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
Kinematic Physics 1pp 2pp 6pp
Keyframe Animation 1pp 2pp 6pp
Particle Systems 1pp 2pp 6pp
Dynamic Physics 1pp 2pp 6pp
Collision Avoidance 1pp 2pp 6pp
Easy-Button Visual Studio Notes PDF    
Collision Detection and Bouncing 1pp 2pp 6pp
Meshes of Springs 1pp 2pp 6pp
Parallel Computing 1pp 2pp 6pp
Math / Physics / C++ Quiz PDF    
More Information PDF    



Guest Speaker Note Handouts

  1. Here are Brian Apgar's slides in one, two, and six slide per-page formats.

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



Videos



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 Strand Ag ("Stag") 111.

1 Sept 24 Introductions. Discussion of class objectives and how we will go about it.
Project #1.
Parametric line equation.
2 Sept 26 Project #1 (the web form) is due at 23:59:59 tonight!
Vectors, I
3 Sept 28 Vectors, II
4 Oct 1 Matrices
5 Oct 3 Transformation matrices
6 Oct 5 Dan White, Pipeworks, speaking on:
Game Programming -- The Big Picture
7 Oct 8 Forward Kinematics
8 Oct 10 Solving nonlinear equations -- Newton's Method
9 Oct 12 Inverse Kinematics, I
10 Oct 15 Inverse Kinematics, II
11 Oct 17 Brian Apgar, Zynga-Eugene, speaking on:
A Comparison of Console Game Development with Social/Mobile Game Development: How They Differ, How They're Converging, and What CS Things are Important
12 Oct 19 Kinematic acceleration physics -- projectile motion
13 Oct 22 Kinematic acceleration physics, II
14 Oct 24 Test #1 review.
Keyframe animation, I
15 Oct 26 Test #1
16 Oct 29 Go over test answers
Keyframe animation, II
17 Oct 31 Halloween!
Particle systems, I
18 Nov 2 Particle systems, II
19 Nov 5 Mechanical dynamics, I
20 Nov 7 Mechanical dynamics, II
21 Nov 9 Collision Avoidance
22 Nov 12 Collisions, I
23 Nov 14 Collisions, II
Meshes of Springs, I
24 Nov 16 Meshes of Springs, II
25 Nov 19 Parallel Computing, I
26 Nov 21 No class today. I'll be in my office during class time. Treat it as Office Hours. Come by for any reason, even if just to play with the Slinkies. :-)
27 Nov 23 Thanksgiving Holiday -- no class today
28 Nov 26 Parallel Computing, II
Math / Physics / C++ Quiz, I
29 Nov 28 Math / Physics / C++ Quiz, II
30 Nov 30 Class Evaluations.
Test #2 review.
Where to find More Information.
T2 Dec 5 Test #2 Wednesday, December 5, 12:00 - 1:30, Stag 111.
(Note: you can confirm this yourself here.)



Projects

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

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 the start of 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 was 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: