|
CIS 410/510 GameProg
Game Programming
|
|
Course Description
Introduction to theory topics related to game programming, including
linear algebra, 3D graphics, lighting, audio, physics, and artificial
intelligence.
This course provides an opportunity to build games using a commercial game
engine, reinforced by best practices in terms of implementation and
project management.
Instructor
Eric D. Wills, Ph.D., eric@cs.uoregon.edu
Lectures and Labs
Two 80-minute lectures are delivered each week.
Prerequisites
- CIS 313 - Intermediate Data Structures
- CIS 314 - Computer Organization
- MATH 341 - Elementary Linear Algebra I (Recommended)
Textbooks and Readings
- (Required) Game Programming Algorithms and Techniques: A
Platform-Agnostic Approach by Sanjay Madhav
- (Free) Game Programming Patterns by Robert Nystrom
- (Free) Game Programming Patterns in Unity with C# by Erik Nordeus
Major Topics
- Game engines: 3 lectures
- Gameplay design: 4 lectures
- Development practices and tools: 2 lectures
- Game programming patterns: 2 lectures
- Linear algebra: 2 lectures
- Lighting/shaders: 1 lecture
- 3D audio: 1 lecture
- Game physics: 1 lecture
- Game AI : 1 lecture
Expected Learning Outcomes
Upon successful completion of the course, students will be able to:
- Proficiently build games using a modern commercial game engine.
- Demonstrate usage of core game programming topics including linear
algebra, 3D graphics, lighting, sound, physics, and artificial
intelligence.
- Understand and implement typical game-reward systems to keep players
engaged.
- Conduct playtests to identify areas of friction and make iterative
improvements to gameplay.
- Understand best practices regarding a typical game-development cycle.
- Proficiently use development tools such as version control, task
tracking, and issue tracking.
Acquired Skills
Upon successful completion of the course, students will have acquired
the following skills:
- be able to implement, debug, and build proof-of-concept games using a
modern commercial game engine.
- be able to contribute meaningfully to game programming using
techniques from linear algebra, 3D graphics, lighting, audio, physics,
and artificial intelligence.
- be able to identify and build reward systems for games.
- be able to conduct playtest sessions and make iterative changes to
improve engagement.
- be able to manage a small-team project through a multi-build
development cycle (pre-alpha, alpha, beta, final).
- be able to use modern remote team management tools including task
tracking, video chat, and instant messaging.
- be able to use modern source management tools including version
control and issue tracking.
Course Requirements and Grading
Grading will be based on the following criteria:
Percentage |
Component |
20 |
Assignments |
30 |
Project deliverables |
20 |
Midterm exam |
20 |
Final exam |
10 |
Participation |
Grading Scale
A |
A+ >= 97.00* |
A 93.00 - 96.99 |
A- 90.00 - 92.99 |
B |
B+ 87.00 - 89.99 |
B 83.00 - 86.99 |
B- 80.00 - 82.99 |
C |
C+ 77.00 - 79.99 |
C 73.00 - 76.99 |
C- 70.00 - 72.99 |
D |
D+ 67.00 - 69.99 |
D 63.00 - 66.99 |
D- 60.00 - 62.99 |
F |
F 0.00 - 59.99 |
|
|
*Eligibility for 'A+' grades will be based on exam scores; only students
with exam scores in the top 5% of the course will be considered.