Summer 2025 - IAT 167 D100
Digital Games: Genre, Structure, Programming and Play (3)
Class Number: 3365
Delivery Method: In Person
Overview
-
Course Times + Location:
May 12 – Aug 8, 2025: Tue, 10:30 a.m.–12:20 p.m.
Surrey
-
Instructor:
Yingchen Yang
yyang1@sfu.ca
1 778 782-7533
-
Prerequisites:
CMPT 120 (or equivalent first year programming course such as CMPT 102, 125, 126, 128, 130, 135, or 166) with a minimum grade of C-.
Description
CALENDAR DESCRIPTION:
Introduces game genres, structures, and programming methods basic to developing games. Students learn how games are designed and how to program the underlying patterns that facilitate play and engagement. Issues of user interface, skills and competition are discussed as are principles of compelling entertainment for players. Students who have obtained credit for, or are currently enrolled in, a CMPT course at the 200-division or higher, or IAT 265 or 267 may not complete this course for credit.
COURSE DETAILS:
This second programming course covers practical programming concepts in the context of game development and builds on the basic programming concepts learned in CMPT 120 (or equivalent introductory programming course). The course introduces game mechanics and systems and the programming methods fundamental to their implementation in video games. Students learn how games are structured and designed, as well as the translation of the game design document into programmatic code. Issues of user interface, challenge and skill, and competition are discussed as are principles of interaction to facilitate play and engagement and compelling entertainment.
Students will be introduced to the key ideas of event-driven and object-oriented programming as well as basic programming practice, including systems design, iterative development and evaluation. The course will use the programming language Javascript and Processing and its IDE to design and develop games of complexity similar to casual, browser-based games.
COURSE-LEVEL EDUCATIONAL GOALS:
Course Objectives:
- Introduce concepts in object-oriented and event-driven programming
- Develop a basic understanding of methods of coding 2D interactive interfaces including image manipulation, sprite movement, and collision and edge detection
- Develop an understanding of methods to maintain state in user-interactive environments
- Develop an iterative programming practice and methods to design and evaluate code
- Introduce the fundamentals of game mechanics and interaction design and their applications in digital game development
Learning Outcomes:
Upon successful completion of this course, students will be able to do the following:
- Design, program/debug and test a complete, simple game program
- Utilize an IDE for program development (file organization, coding and debugging)
- Define the main concepts in Object-Oriented Programming: Encapsulation, Inheritance, Polymorphism; identify these concepts in code; and explain the benefits of their usage; design/write code that makes good use of these concepts
- Apply an event-driven programming architecture to create a traditional update/render game loop and handle user input
- Discuss the issues involved in collision detection and solve this problem programmatically for simple cases
Grading
- Lab Participation and Challenges 10%
- Assignments & Homework 40%
- Quizzes 15%
- Final Exam 30%
- Lecture Participations: 5%
Materials
MATERIALS + SUPPLIES:
Readings are provided on a weekly basis beyond the text book listed below
REQUIRED READING:
“Learning Processing: A Beginner's Guide to Programming Images, Animation & Interaction” (2015) by Daniel Shiffman; 2nd Edition; Morgan Kaufmann (also avaiable online via SFU lLibrary)
ISBN: 9780123944436
RECOMMENDED READING:
“Fundamentals of Game Design” (2013) by Ernest Adams; 3rd Edition; New Riders
ISBN: 9780321929679
REQUIRED READING NOTES:
Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.
Registrar Notes:
ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS
At SFU, you are expected to act honestly and responsibly in all your academic work. Cheating, plagiarism, or any other form of academic dishonesty harms your own learning, undermines the efforts of your classmates who pursue their studies honestly, and goes against the core values of the university.
To learn more about the academic disciplinary process and relevant academic supports, visit:
- SFU’s Academic Integrity Policy: S10-01 Policy
- SFU’s Academic Integrity website, which includes helpful videos and tips in plain language: Academic Integrity at SFU
RELIGIOUS ACCOMMODATION
Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.