Sonoma State University
Department of Computer Science
CS-330: Introduction to Game Programming
Spring 2026

Course Description

Lecture, 2 hours; laboratory, 2 hours. This course is an introduction to the theory and practice of video game design and programming. Video games combine, in real-time, concepts in computer graphics, human-computer interaction, networking, artificial intelligence, computer aided instruction, computer architecture, and databases. This course introduces students to a variety of game engines and frameworks and explores artificially intelligent agents. Students will work as part of a team to create a complete description document for a computer game and implement a prototype of the game.

Prerequisites

Grade of C- or better in CS-315 or instructor consent.

Instructor

Robert Bruce

Learning Outcomes

Upon successful completion of this course, students will be able to:

  1. Evaluate best-practices in user-interface (UI) design and user-experience (UX) in game development by creating a 2D game using the Godot game engine.
  2. Evaluate best-practices in software engineering through a collaborative, team-based software project.
  3. Create applications in the scripting language, GDscript using the Godot game engine’s Application Programming Interface.
  4. Evaluate the capabilities and limitations of the Godot game engine.
  5. Describe the integrated development environment (IDE) of the Godot game engine.

Required Texts/Readings

Textbook

  1. The Art of Game Design (Third edition) by Jesse Schell. ISBN: 9781138632059

Other Readings (optional references)

  1. The Godot game engine documentation https://docs.godotengine.org/en/stable/index.html
  2. I will be providing links to YouTube tutorials on Godot game development on Canvas. I will include the links in lectures and/or in specific programming assignments.

Course Requirements

Exercise 1

In this exercise, students will follow Godot’s "Dodge the Creeps!" online tutorial for beginning 2D game development.

Exercise 2

In this exercise, students will follow Godot’s "Squash the Creeps!" online tutorial for beginning 3D game development.

Exercise 3

In this exercise, students will analyze the game mechanics for an Asteroids game written in Godot.

Exercise 4

In this exercise, students will analyze the game mechanics for an Angry Birds game clone written in Godot.

Exercise 5

In this exercise, students will analyze the game mechanics for Cat Burglar written in Godot.

Game Project Proposal

Working as a team, students will present a project proposal to the class for an original 2D game. The project proposal may include wireframes, storyboarding, description of the game mechanics, art assets, notes about user-interface, user-experience, etc.

Game Project

Working as a team, students will implement a 2D game in Godot based on the Game Project Proposal.

Game Project Presentation

As a team, students will showcase their 2D game to the class. Each team member will speak about their individual contributions. Students will be graded on their ability to communicate in a clear and concise manner, the relevancy of supplemental visual material to support their presentation, and their timing.

Game Project Assessment Report

Each student will write a reflective report concerning the Game Project.

Midterm Examination

The midterm exam will based on chapters 1 through 18 of Schell's The Art of Game Design. The exam will be comprised of open-ended questions. The exam will be closed-book. You may use one A4 sheet of paper (8.5 inches width by 11 inches length) for notes during the midterm examination. You may write notes on both sides of the sheet of paper.

Final Examination

The final exam will based on chapters 19 through 35 of Schell's The Art of Game Design. The exam will be comprised of open-ended questions. The exam will be closed-book. You may use one A4 sheet of paper (8.5 inches width by 11 inches length) for notes during the midterm examination. You may write notes on both sides of the sheet of paper.

Grading Information

Assignment Percentage of Grade
Exercise 1: Your first 2D game - Dodge the creeps 5%
Exercise 2: Your first 3D game - Squash the creeps 5%
Exercise 3: Game mechanics analysis for Asteroids 5%
Exercise 4: Game mechanics analysis for Angry Birds 5%
Exercise 5: Game mechanics analysis for Cat Burglar 5%
Game Project Proposal 10%
Game Project 15%
Game Project Assessment Report 10%
Game Project Presentation 10%
Midterm exam
Midterm exam study guide
15%
Final exam
Final exam study guide
15%
TOTAL 100%

† Graded as an individual
‡ Graded as a group (each member of the group gets same grade)

Determination of Grades

Ultimately this course is graded A, B, C, D, or F. Percentage grades are rounded to the nearest whole number. For example, a grade of 92.4% will be rounded to 92% and result in a grade of "A minus". A grade of 92.5% will be rounded to 93% and result in a grade of "A".

Grading Scale

Percent range Grade
93% to 100% inclusive A
90% to 92% inclusive A-
87% to 89% inclusive B+
83% to 86% inclusive B
80% to 82% inclusive B-
77% to 79% inclusive C+
73% to 76% inclusive C
70% to 72% inclusive C-
67% to 69% inclusive D+
63% to 66% inclusive D
60% to 62% inclusive D-
Below 60% F

Grading Policies

Late assignments

Absent extenuating circumstances (illness, family emergency), late submissions will be accepted under the late policy until the advertised "Until" deadline on Canvas. The late policy is minus 10% per day, and never grows more than minus 50% markdown (as long as the assignment is submitted before the final deadline via Canvas).

Late exams and quizzes
  • There are no make-up exams.
  • Official proof of emergency required for missing an exam, project, or project presentation.

Course Schedule

Week Topics and Assignments Readings and Deadlines
Week 1
Monday, January 26, 2026
Lecture: Success in CS-330: Introduction to Game Programming Read chapters 1 and 2. TOTAL: 24 pages
Week 1
Wednesday, January 28, 2026
Lab: Install GODOT  
Week 2
Monday, February 2, 2026
Lecture: Introduction to GODOT, GDScript, and art asset resources Read chapters 3, 4, and 5. TOTAL 36 pages
Week 2
Wednesday, February 4, 2026
Lab: Exercise 1: Your first 2D Game: Dodge the Creeps!  
Week 3
Monday, February 9, 2026
Lecture: Game Design versus Game Development Read chapters 6, 7, 8, and 9. TOTAL: 78 pages
Week 3
Wednesday, February 11, 2026
Lab: Exercise 1 (continued)  
Week 4
Monday, February 16, 2026
Lecture: Fundamentals of Game Mechanics Read chapters 10, 11, and 12. TOTAL: 72 pages
Week 4
Wednesday, February 18, 2026
Lab: Exercise 1 (continued)  
Week 5
Monday, February 23, 2026
Lecture: Storyboarding Read chapters 13 and 14. TOTAL: 55 pages
DUE: Exercise 1
Week 5
Wednesday, February 25, 2026
Lab: Exercise 2  
Week 6
Monday, March 2, 2026
Lecture: Sound in games and the User Experience (UX) Read chapters 15, 16, and 17. TOTAL: 74 pages
Week 6
Wednesday, March 4, 2026
Lab: Exercise 2 (continued)  
Week 7
Monday, March 9, 2026
Lecture: Heads-up Display (HUD) and user-interface (UI) design
Midterm Exam Review
Read chapter 18. TOTAL: 20 pages
Week 7
Wednesday, March 11, 2026
Lab: Exercise 2 (continued)  
Week 8
Monday, March 16, 2026
MIDTERM EXAM  
Week 8
Wednesday, March 18, 2026
Lab: Team formation DUE: Exercise 2
Monday, March 23, 2026 SPRING BREAK  
Wednesday, March 25, 2026 SPRING BREAK  
Week 9
Monday, March 30, 2026
Lecture: How to develop a game project proposal
Supplementary material: Github Survival Guide
Read chapters 19, 20, and 21. TOTAL: 31 pages
Week 9
Wednesday, April 1, 2026
Lab: Exercise 3: Game mechanics analysis for Asteroids  
Week 10
Monday, April 6, 2026
Lecture: Physics for game development Read chapters 22, 23, and 24. TOTAL: 32 pages
DUE: Exercise 3
Week 10
Wednesday, April 8, 2026
Lab: Exercise 4: Game mechanics analysis for Angry Birds  
Week 11
Monday, April 13, 2026
Lecture: Textures and materials for game development Read chapters 25, 26, and 27. TOTAL: 36 pages
DUE: Team Game Project Proposal
DUE: Exercise 4
Week 11
Wednesday, April 15, 2026
Lab: Exercise 5: Game mechanics analysis for Cat Burglar  
Week 12
Monday, April 20, 2026
Lecture: Shaders for game development Read chapters 28, 29, and 30. TOTAL: 42 pages
DUE: Exercise 5
Week 12
Wednesday, April 22, 2026
Lab: Game Project  
Week 13
Monday, April 27, 2026
Lab: Game Project Read chapters 31, 32, and 33. TOTAL: 46 pages
Week 13
Wednesday, April 29, 2026
Lab: Game Project  
Week 14
Monday, May 4, 2026
Lab: Game Project Read chapters 34 and 35. TOTAL: 28 pages
Week 14
Wednesday, May 6, 2026
Lab: Game Project  
Week 15
Monday, May 11, 2026
Game Presentation DUE: Game Project
DUE: Game Project Assessment Report
DUE: Game Project Presentation
 
Week 15
Wednesday, May 13, 2026
Game Presentation  
  FINAL EXAM: May 18, 2026 at 6:00 PM