Handouts | Classes | Projects |
This page was last updated: December 1, 2022
Welcome to CS 491! I am so glad to have you here. This class will be unlike any other CS class you have ever taken. We will look at a lot of techniques that make the art of creating simulations and games more automatic. I really enjoy this stuff! I think you will too.
Class and Covid: I respect your right to protect yourself and your loved ones from Covid. For anyone who is concerned about coming to campus, I have recorded the lectures and published them on this Resources Page. These won't be as good as coming to Live Class. Afterall, in Live Class, questions can be asked and discussions can be generated. But, I don't want anyone to have to choose between their safety and coming to class.
Masks are welcome, but not required.
To see an academic year calendar, click here.
Monday, Dec 5 | 2:00 - 4:00 |
Tuesday, Dec 6 | 10:00 - 12:00 |
This is not a game-design course. It is also not a game-creation course. We will not be creating any games. Game and simulation programming is very much a data-, math-, and physics-intensive activity. A certain number of actions must be produced, and producing them by hand is hard. Also, producing them by hand often leads to sucky-looking content.
It's much easier, and produces better-looking results, if we can convince the computer to do the right things for us. But, it takes special knowledge to do that.
That's why you are here. This is a middleware CS course that will fill in many of those special knowledge missing pieces.
Even if you aren't looking for a job in one of these fields, you will likely find these varied topics useful and enjoyable anyway.
CS 491 topics include:
By the way, 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. If you want computer graphics, either in addition to this course or instead of, CS 450 is the class you want.
If you need a place to do your programming assignments, you can get access to the Windows 10-based graphics systems in OSU's Computer Graphics Education Lab (CGEL) in Batcheller Hall 244. |
Access to the CGEL is by your OSU ID card, which also acts as a card key. The first full week of classes, I will give the EECS Main Office a list of who is in this class, so that they can enable your cards for the CGEL.
Warning! Every so often, I reserve the CGEL for a grades 2-12 outreach activity. (Why? Because I want more "you"s in our major!) I will let you know when one of these is coming up.
Prerequisites
Course Learning Outcomes
On completion of the course, students will have demonstrated the ability to:
Professor and TA
The class is being taught by
Professor Mike Bailey.
Office: | Kelley 2117 (2nd floor, south side) |
E-mail: | mjb@cs.oregonstate.edu |
Phone: | 541-737-2542 |
Zoom-room: | Zoom |
Above all, know that I am here to help you.
Prof. Bailey's Help Hours:
See below: | ||
or, anytime my office door is open | ||
or, by appointment -- send email |
Our TA for this class is Sushma Dasini. She is a computer graphics graduate student and has a lot of experience. We are lucky to have her!
Unless otherwise indicated, all of these are Zoom Help Hours. All times are Pacific time.
Sushma Dasini (SD) | Prof. Bailey (PB) | |
dasinis | mjb | |
Zoom-room | Zoom | Zoom |
Mondays | 10:00-12:00 , 3:00-5:00 | 2:00-4:00 |
Tuesdays | 2:30-4:00 | |
Wednesdays | 9:00-11:00 , 2:00-4:00 | 8:00-9:30 |
Thursdays | ||
Fridays | 2:00-4:00 | 4:00-6:00 |
8:00 | 9:00 | 10:00 | 11:00 | 12:00 | 1:00 | 2:00 | 3:00 | 4:00 | 5:00 | |
Monday | SD | SD | PB | PB , SD | SD | |||||
Tuesday | PB | PB | ||||||||
Wednesday | PB | PB , SD | SD | SD | SD | |||||
Thursday | ||||||||||
Friday | SD | SD | PB | PB |
There is no purchased textbook for this class.
Instead, the material will consist of notes and web pages.
Warning! Warning! 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 to them in class!
Tests will include material not written in the notes, but covered in class.
Every year, some people get an embarassingly bad grade in this class because
they don't come to class.
That is especially sad for those who envision a career in the gaming world,
as this is our only CS class with the actual word "Game" in the title.
Course material will consist of my notes and web pages.
Most notes are given in one, two, four, or six slides per page formats.
This is so that you can make the readability vs. print-pages trade-off yourself.
LV = Lecture Video
Textbook
Class Note Handouts and Recorded Videos
All required course materials for this class will cost you $0.00 (i.e., free).
DV = Demonstration Video
Week # | Noteset | |||||||
---|---|---|---|---|---|---|---|---|
2016 Game Career Guide | ||||||||
0 | CS 491 Class Resources Page | LV | ||||||
0 | Introduction to CS 491 | 1pp | 2pp | 4pp | 6pp | LV | ||
0 | CS 491 Project Notes | 1pp | 2pp | 4pp | 6pp | LV | ||
0 | Parametric Lines | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Vectors | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Efficient Ray-Triangle Intersections | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | GLM | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | A short GLM Primer | Here | ||||||
2 | Matrices | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | Transformations | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | Quaternions | 1pp | 2pp | 4pp | 6pp | LV | ||
3 | Forward Kinematics | 1pp | 2pp | 4pp | 6pp | LV | DV | |
3 | Inverse Kinematics | 1pp | 2pp | 4pp | 6pp | LV | DV | |
4 | Kinematic Physics | 1pp | 2pp | 4pp | 6pp | LV | ||
4 | Newton's Method | 1pp | 2pp | 4pp | 6pp | LV | ||
4 | Test #1 Review | HTML | ||||||
5 | Particle Systems | 1pp | 2pp | 4pp | 6pp | LV | ||
6 | Dynamic Physics | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | |
6 | Circular Motion | 1pp | 2pp | 4pp | 6pp | LV | ||
7 | KeyTime Animation | 1pp | 2pp | 4pp | 6pp | LV | ||
7 | Functional Animation (Collision Avoidance) | 1pp | 2pp | 4pp | 6pp | LV | DV | |
8 | Meshes of Springs | 1pp | 2pp | 4pp | 6pp | LV | DV | |
8 | Collision Physics | 1pp | 2pp | 4pp | 6pp | LV | ||
10 | Collision Detection | 1pp | 2pp | 4pp | 6pp | LV | ||
10 | Physics of Space Travel | 1pp | 2pp | 4pp | 6pp | LV | ||
10 | More Information | LV | ||||||
10 | Test #2 Review | HTML | ||||||
Making a Kaltura Video | Here |
Week # | Start Date | Topics |
---|---|---|
0 | Sept 22 |
Introductions
Discussion of class objectives and how we will go about it. Project Notes The parametric line equation: what it is, what you can do with it in a 3D world |
1 | Sept 27 |
Vectors and how easy they make certain geometric operations
Efficient ray-triangle intersection, and why you care Project #1 GLM: C++ classes to handle useful geometric and computer graphics operations Here is a short GLM primer |
2 | Oct 4 |
Matrices and what geometric operations you can do with them
Transformation matrices: the basis for every dynamic-motion game you have ever played Quaternions: weird name, cool concept Hierarchical transformations Project #2 |
3 | Oct 11 |
Forward Kinematics
Generalizing the hierarchical transformations (now you know how to make a Transformers movie!) Kinematic acceleration physics Projectile motion: remember all those tank-shooting games? |
4 | Oct 18 |
Bryan Pawlowski, Timberline Studios, will be speaking live via Zoom
on Tuesday, October 18, 10:00 AM, on:
"Data Driven Software Engineering for Accelerated Game Development".
Here is the Zoom-room. Confirmed.
Inverse Kinematics (IK): the Cyclic Coordinate Descent (CCD) algorithm
Solving nonlinear equations: Newton's Method Particle systems: what they are, what they do, how to create your own |
5 | Oct 25 |
Dan White, Pipeworks, will speak on:
"Engineering at a Games Company: What do we do?"
in class on October 25.
Brian Apgar, Zynga-Eugene, will speak on:
"How Running a Live Game Impacts Your Code"
in class on October 27.
Test #1
will be taken on Canvas in a 60-minute interval of your own choosing during
October 26-30.
|
6 | Nov 1 |
Mechanical Dynamics: numerically integrating equations of motion
Project #5
|
7 | Nov 8 |
Keyframe Animation
Functional Animation: getting actors to want to move correctly |
8 | Nov 15 |
Project #6
|
9 | Nov 22 | No class this week. |
10 | Nov 29 |
Project #7
Collision Detection Physics of Space Travel: so that's how the Kerbal Space Program really works! More Information document |
T2 | Dec 7-11 |
Test #2
will be taken on Canvas in a 60-minute interval of your own choosing during
December 7-11.
It will open at 12:00 noon on Wednesday, December 7 and will close at 23:59 on Sunday, December 11. |
Project # | Points | Title | Due Date | LV |
---|---|---|---|---|
1 | 60 | Using GLM to manipulate 3D Vectors | October 4 | LV |
2 | 80 | Using GLM to Manipulate Matrices and Transformations | October 10 | LV |
3 | 100 | Forward Kinematics | October 19 | LV |
4 | 100 | Collisions and Bouncing | October 31 | LV |
5 | 100 | Particle system | November 12 | LV |
6 | 100 | Keytime Animation | November 25 | LV |
7 | 100 | Mesh of Springs | December 6, 23:59:59 -- No Bonus Days | LV |
Projects are due at 23:59:59 on the listed due date.
Electronic submissions are due at 23:59:59 on the listed due date.
When they are required, you can create the videos any way you want.
Kaltura is quick, easy, and OSU has a site license for it.
Here
is how to use Kaltura.
Zoom recording also works well.
Videos
Project Turn-In Procedures
Points | Grade |
910 | A |
890 | A- |
870 | B+ |
850 | B |
830 | B- |
810 | C+ |
790 | C |
770 | C- |
750 | D+ |
730 | D |
710 | D- |
You will notice that these cut-offs are not 90-80-70-... This is because I am going to do a "soft-grade" on your programming projects, i.e., if it works, you get full credit. A "hard-grade" would look at your programming style, etc., which would allow more of a traditional grading scale.
All turnins will be done on Teach. Teach has been told about each project's due date.
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:
To use one or more Bonus Days on a given project:
You are expected to read and understand Oregon State University's
Statement of Expectations for Student Conduct, found here:
https://beav.es/codeofconduct
If there is any parts of this document that you don't understand, ask me!
Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at
http://ds.oregonstate.edu.
DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.
Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see me immediately so that we can make alternative arrangements.
As {John Lennon? Allen Saunders?} has said: "Life is what happens to you while you're busy making other plans".
I care about you as a person.
When life happens to you, send me an email and come see me.
I might be able to help, I might not.
But I surely can listen.
You are not alone.
University students encounter setbacks from time to time.
If you encounter difficulties and need assistance, it's important to reach out.
Consider discussing the situation with me or an academic advisor.
Learn about resources that assist with wellness and academic success at
http://oregonstate.edu/ReachOut.
If you are in immediate crisis, please contact the Crisis Text Line by texting
OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)
Success at OSU means knowing and using your resources.
One helpful resource is the community of staff available at the Basic Needs Center (BNC) for support (bnc@oregonstate.edu, 541-737-3747).
Students can drop in during open hours and talk with a BNC student leader for resources, ideas and strategies connected to basic needs challenges.
The BNC is often known for its food pantry but there are other resources connected to groceries and affording food
often available and staff who can help you work through housing stressors.
Undergraduate students, living in Oregon, are especially encouraged to explore SNAP (up to $236 in grocery money each month for eligible students)
as a resource.
Domestic undergraduate students living in Oregon are more likely than not to be eligible for SNAP. BNC staff are skilled with helping students navigate this process.
Additionally, the BNC Textbook Lending Program offers students the opportunity to check out required textbooks for the academic term.
Furthermore, if you are comfortable doing so, please talk with Professor Bailey. He will do everything he can to help you.
Class Rules
Students With Disabilities
Religious Holidays
Life Events
Reach Out for Success
Basic Needs
Other Useful URLs Related to Simulation and Game Development:
Other Notes You Might Find Useful!
University Classes
Computer Graphics Shaders
Scientific Visualization
Parallel Programming
CS Skills for Simulation and Game Programming
Vulkan
ParaView
WebGL
Grades 2-12 Outreach
Scratch
SketchUp
Blender
TinkerCad
Processing