CIS220 - Game Development

3 Credit hours - 2 Lecture, 2 Lab

Prerequisite(s): Grade of “C” or better in CIS125 and Grade of “C” or better in one of the following: CIS150 or CIS170

Curriculum Changes Fall 2025

Prerequisite(s): CIS125 or concurrent enrollment, and Grade of “C” or better in one of the following: CIS150 or CIS170 or CSC160 or CIS131

Course Rationale:

Developing a computer video game is a complex problem, drawing on skills from nearly every facet of the computer science discipline. The ability to develop such a program demonstrates prowess in areas from mathematics to software to hardware. This course is to be used to measure a student's readiness to move to the next academic level using the highly motivating paradigm of computer video games as a conduit to learning.

Catalog Description:

This course will provide students to demonstrate mastery of a number of advanced skills, including mathematics, algorithms, object-oriented programming, software design patterns, and graphics as students develop features common to modern computer games. Various technologies and platforms will be explored, giving students exposure to what it takes to develop computer games.

Course Objectives

Upon successful completion of this course, the student should be able to:

  1. Explain features of modern computer games, libraries and engines.

  2. Develop a game proposal and make a sales pitch designed to seek development approval.

  3. Describe various hardware technologies commonly used to develop computer games.

  4. Utilize and demonstrate application of various graphics and game engine techniques

All course assignments and exams are closely aligned to, and assess the student's mastery of these core objectives.

Core Outcomes

In this course, students will build upon the programming knowledge gained in CIS-171 or CIS-151, as well as the game design knowledge gained in CIS-125, to learn how to develop well designed, full featured, functional video games. By the end of this course, students should be able to:

  • Demonstrate an understanding of the game engine life cycle

    • Understand the fundamentals of life cycle methods, how to override the game engine life cycle methods to implement user code, and how to implement additional methods as needed

    • Understand game object creation, including visual design aspects of the game object and class code to implement the features of the game object

    • Understand transform positioning of game objects and how to move game objects on the x, y and z axis

    • Understand encapsulation - creating game object classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers

    • Recognize the importance of compartmentalizing code

  • Develop Proficiency with programming language fundamentals

    • Work effectively with variables and components utilized by the game engine

    • Implement effective looping structures to randomize game object creation and behavior

    • Work with collections of game objects, variables and game data

  • Work effectively in a 3D space

    • Understand coordinates used to establish the position of a point

    • Implement linear interpolation to generate fluid movement

    • Establish raycast parameters to detect colliders

    • Create interfaces that are dynamic and render aware

    • Bake animations to eliminate rigging

  • Implement game engine features and interact with tools

    • Explain and develop effective particle systems

    • Create effective, interesting and visually appealing game terrains

    • Work with objects to implement dynamic animation

    • Rig models to implement movement

    • Effectively control aspects of UI, timeline and scene navigation

  • Demonstrate best-practices of general software development

    • Understand application life cycle management - phases of application life cycle management, software testing

    • Use effective design tools utilized in the gaming industry; storyboards, workflows

    • Understand the importance of ‘the pitch’ when working in a development environment

    • Utilize an industry standard integrated development environment to organize project contents, manipulate multiple source code files, and perform project level debugging

Test Out Requirements

Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam. Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.

The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)

Last updated