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

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 Gadot 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 Gadot game engine’s Application Programming Interface.
  4. Evaluate the capabilities and limitations of the Gadot game engine.
  5. Describe the integrated development environment (IDE) of the Gadot 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 Gadot game engine documentation https://docs.godotengine.org/en/stable/index.html
  2. I will be providing links to YouTube tutorials on Gadot 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 work in teams to analyze the game mechanics for an Asteroids game written in Gadot.

Exercise 3

In this exercise, students will work in teams to analyze the game mechanics for an Angry Birds game clone written in Gadot.

Exercise 4

In this exercise, students will work in teams to analyze the game mechanics for a Super Mario Brothers game clone written in Gadot.

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 Gadot 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
Game exercise 1 5%
Game exercise 2 5%
Game exercise 3 5%
Game exercise 4 5%
Game Project Proposal 10%
Game Project 20%
Game Project Assessment Report 10%
Game Project Presentation 10%
Midterm exam 15%
Final exam 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 5% 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
Tuesday, August 20, 2024
Lecture: Success in CS-330: Introduction to Game Programming Read chapters 1 and 2. TOTAL: 24 pages
Week 1
Thursday, August 22, 2024
Lab: Install GODOT  
Week 2
Tuesday, August 27, 2024
Lecture: Introduction to GODOT, GDScript, and art asset resources Read chapters 3, 4, and 5. TOTAL 36 pages
Week 2
Thursday, August 29, 2024
Lab: Exercise 1: Your first 2D Game: Dodge the Creeps!  
Week 3
Tuesday, September 3, 2024
NOTE: Last day to drop class is Sept. 4, 2024!
Lecture: Game Design versus Game Development Read chapters 6, 7, 8, and 9. TOTAL: 78 pages
Week 3
Thursday, September 5, 2024
Lab: Exercise 1 (continued)  
Week 4
Tuesday, September 10, 2024
Lecture: Fundamentals of Game Mechanics Read chapters 10, 11, and 12. TOTAL: 72 pages
Week 4
Thursday, September 12, 2024
Lab: Exercise 1 (continued)  
Week 5
Tuesday, September 17, 2024
Lecture: Lecture: Storyboarding Read chapters 13 and 14. TOTAL: 55 pages
Week 5
Thursday, September 19, 2024
Lab: Exercise 1 (continued)  
Week 6
Tuesday, September 24, 2024
Lecture: Sound in games and the User Experience (UX) Read chapters 15, 16, and 17. TOTAL: 74 pages
Week 6
Thursday, September 26, 2024
Lab: Exercise 1 (continued)  
Week 7
Tuesday, October 1, 2024
Lecture: Heads-up Display (HUD) and user-interface (UI) design.
Midterm Exam Review
Read chapter 18. TOTAL: 20 pages
Week 7
Thursday, October 3, 2024
Lab: Exercise 1 (continued) DUE: Exercise 1
Week 8
Tuesday, October 8, 2024
MIDTERM EXAM  
Week 8
Thursday, October 10, 2024
Lab: Team formation  
Week 9
Tuesday, October 15, 2024
Lecture: How to develop a game project proposal. Read chapters 19, 20, and 21. TOTAL: 31 pages
Week 9
Thursday, October 17, 2024
Lab: Exercise 2 - Game mechanics analysis Due: Exercise 2
Week 10
Tuesday, October 22, 2024
Lab: Exercise 3 - Game mechanics analysis Read chapters 22, 23, and 24. TOTAL: 32 pages
DUE: Exercise 3
Week 10
Thursday, October 24, 2024
Lab: Exercise 4 - Game mechanics analysis DUE: Exercise 4
Week 11
Tuesday, October 29, 2024
Team presentation: Game project proposal Read chapters 25, 26, and 27. TOTAL: 36 pages
DUE: Team Game Project Proposal
Week 11
Thursday, October 31, 2024
Lab: Game Project  
Week 12
Tuesday, November 5, 2024
Lab: Game Project Read chapters 28, 29, and 30. TOTAL: 42 pages
Week 12
Thursday, November 7, 2024
Lab: Game Project  
Week 13
Tuesday, November 12, 2024
Lab: Game Project Read chapters 31, 32, and 33. TOTAL: 46 pages
Week 13
Thursday, November 14, 2024
Lab: Game Project  
Week 14
Tuesday, November 19, 2024
Lab: Game Project Read chapters 34 and 35. TOTAL: 28 pages
Week 14
Thursday, November 21, 2024
Lab: Game Project  
Week 15
Tuesday, November 26, 2024
Lab: Game Project  
Week 15
Tuesday, December 3, 2024
Lab: Game Project
Final Exam Review
 
Week 16
Thursday, December 5, 2024
Game Presentation DUE: Game Project
DUE: Game Project Presentation
  FINAL EXAM