Top

Game Programming

Cornwall Campus | Program Code: 0974 | CIP Code: 11.0204 | Open for International Students
Domestic Students

Domestic apply now subtext

Already Applyed? Login here!

International Students

International students subtext

Overview

Game programming is a multi-billion dollar industry that is among the fastest growing in the world. The video game industry is in need of trained programmers who can produce optimized and efficient code for computers, game consoles, web pages, cell phones and other devices. If you are creative and like to control the action, Game - Programming is for you.

Program content introduces you to fundamental game concepts including introductory computer programming in C++, C#, scripting languages, web development, and database storage techniques. You will learn mathematical calculations for advanced programming techniques required for sophisticated graphics, A.I. (artificial intelligence) and networked multiplayer games. You will broaden your knowledge by examining and implementing 3-dimensional games using industry standard libraries and game engines. Portability, modularity and efficiency of code is emphasized at all stages of instruction in addition to proper documentation and team communications.

Graduates of the Game Programming program develop a sound background in software design methodology and programming.

Study in Ireland

Graduates of this program can turn their diploma into a degree. Learn how you can continue your education by studying in Ireland.

Program Details

Code 0974
Start Date September
Credential Ontario College Diploma
Campus Cornwall
Program Length 2 Years
Delivery Full-Time
Open for international students

Program Highlights

Students focus on C++ and C# programming languages throughout the full 2-year program acquiring skills the industries demand. Students study Network Programming, Artificial Intelligence, Graphics Programming and a leading Game Engine. In the Final semester, students form teams to complete a final culmination project where they develop and release games to a professional market using industry project management software and development environments.

Program Outline

2024-2025

This course is designed to help students develop and practice the communication skills needed to succeed in college and workforce environments. Emphasis is placed on improving foundational communication strategies-reading, writing, listening, and speaking—and on developing research and critical thinking skills. 

In this course, students learn the fundamentals of a current programming language used in the Gaming Industry. Topics addressed include custom design of simple games, and various programming techniques. Through the use of hands-on exercises, by means of C++ programming, students create and debug games which implement variables, functions, conditions, loops, arrays and classes. 

Throughout this course, students are presented with an overview of the video gaming industry. Through lecture and lab activities students discover many of the concepts involved in gaming such as types of video games, the roles of members of a gaming team, the game development life cycle and the technical components required to produce high quality video games. Other topics examined are the impact of playing video games on ones’ life, legal and ethical considerations, and professional opportunities that are available in the gaming industry.

This course familiarizes students with the fundamental components of popular game engines in order to facilitate the making of robust games. Students learn how to create and modify properties of game objects such as models, environments, lights, cameras and sound. Students learn how to apply materials, textures and shaders to enhance the look of their game environment. Using leading edge game engines, students discover how adding gaming scripts to their game objects produces dynamic behaviour. Through a series of labs students build 2D & 3D mini-games that respond to various input devices and can run on different platforms: PC, web and mobile.

Students learn about standard game design methodologies and workflow of a programming team. Students explore concepts of alogrithms using simple variables and conditional logic to sorting and searching arrays. Logical design of games code is introduced through flowcharts implementing statements, conditional checks, loops, and functions. Object properties and methods are described via UML Diagrams. Students also learn how to break down larger problems into manageable tasks through analysis and debugging techniques.

This course introduces the student to the concepts of object oriented programming (OOP) used in the making of modern video games. Topics include the basics of object oriented design such as inheritance, encapsulation, abstraction and polymorphism. This course explores these concepts using C++, the programming language most widely adapted by the video game industry.  Students obtain hands-on experience through lab and lecture creating their own classes, using existing classes to build interactive games. Students are also introduced to the Standard Template Library of C++ and explore algorithms, containers and iterators via in lab activities.

In this course, students are taught intermediate programming concepts available through the use of C++. Students learn about bitwise operations, file streaming, and string manipulation. Students further their knowledge of memory management studying allocations of dynamic memory and pointers. Through lab and class activities students create projects which interact with a game controller and save/load data from text files.

In this course students study fundamental laws and operations in algebra and trigonometry: linear, quadratic, exponential, logarithmic, and trigonometric functions, related graphs and equations, vectors, and their applications. Number systems are introduced for further application in computer programming courses. Through learning activities and group work, students learn various math concepts, which gives them the knowledge necessary for future technical courses.

In this course students create web based games. Through a combination of labs and in class activities, students learn HTML5, JavaScript and CSS to create games and format visuals to support a wide variety of device resolutions and dimensions. Students build fully functional games which include user input, animation of characters, 2D physics, sound effects, music and the loading of images and JSON files.

In this course students are introduced to programming with a leading game engine. By carrying out a series of labs, students implement functionality to manipulate game objects, create gameplay management systems and interface with the engines API. Students are familiarized to an industry standard source control software and learn to work collaboratively in groups to build small games.

In this course, students develop their ability to make strong professional impressions with the goal of acquiring employment opportunities. Learners explore professional development through the curation of an online portfolio of work. Students develop job search skills and learn how to use acquired program knowledge and language when communicating their strengths to potential employers. Finally, learners refine their ability to contribute as an individual and a member of a team to complete projects effectively.

Students research and design rich User Interfaces(UI) which display dynamic content that scales to multiple resolutions. Students analyze traditional and modern interfaces as well as expectations of specific genres. Through the analysis of the User Experience (UX), students iterate on designs which provide a clean and easily navigable interface for the end user. Students work within a game engine to program and create menu systems, popups, Heads Up Displays (HUD) and various other dynamic UI components.

In this course students are introduced to the concepts of artificial intelligence used to make games more engaging to players. Through lab exercises and use of a leading game engine, students bring life to enemies within games by demonstrating strategies learned in the lectures such as finite state machines, pathfinding, behaviour trees and flocking.

Throughout this course, students explore the concepts of networking and its uses within games. Through lecture and lab exercises, students will analyze the way network traffic is processed  from one device to another.  Students will discuss the use of different network topologies and its effectiveness for games based on their genre. Server architecture design for efficient data transfer is emphasized when implementing client server communication through Remote Procedural Calls (RPC) and HTTP requests. Students use a current game engine to communicate from clients to a server and create a multiplayer game experience.

In this course students apply mathematical concepts to calculate physics quantities such as position, displacement, time, velocity and acceleration in 1D, 2D, and circular motions. Students calculate average and instantaneous rates using formulas and calculus.  Students apply vectors and trigonometry to horizontal, vertical, projectile motions, and to forces using Newton’s Laws. Work, conservation of momentum and mechanical energy, and collisions are explored to solve motion problems. Physics simulations are used to demonstrate object motion, physics laws and principles, and to compare physical quantities.

In this course students form teams and must work together to ensure a solid prototype is produced, showcasing many of the skills acquired from previous courses in the program. Students prepare game design documents (GDD’s) and create playable prototypes to prove out their games design and functionality. Students set up automated build systems for their projects and work collaboratively using online documentation, project management and source control software.

In this course, students expand off their knowledge of core programming and object oriented designs to research applicable uses in design patterns commonly used in the games industry. Students compare the pros and cons of different technical designs and learn to make decisions on proper use cases within different components of the game. Throughout the course students will identify the values of data driven, event driven and object oriented approaches to solve problems with considerations made towards readability of code and performance.

Students are introduced to the concept of rendering programming through the use of shaders. Students explore the stages of the graphics pipeline and the communication of data between the CPU and the GPU for the purpose of creating 3D objects within game worlds. The concept of converting 3D scenes to 2D screen pixels is explained preparing the students for a greater understanding of graphics programming and the render programmer role. Students leverage internal capabilities of shaders to produce visual effects such as lighting, shadows, and implement post processing effects. Analysis of current professional game engines assist students in understanding the impact graphics programming plays on creating virtual worlds.

Students are introduced to scripting languages and learn how to use them to interface with their computer and databases. Students learn the basic syntax of the Python programming language by completing a series of labs. Students create python scripts to automate tasks on their computer, like controlling their keyboard and mouse, send emails, crawl websites and parse documents. Students learn to create and manipulate structured databases for storing game related information. Students will use Python scripts to interface with locally created databases.

Continuing from the previous semesters Capstone Prep course, students prove out their designs and prototypes to complete their projects goals. Students use project management and source control software to complete a technically challenging project. Students perform peer code reviews using web interface tools to collectively provide feedback to each other as well as maintain the coding & projects standards supplied. All work performed in this course is designed to emulate a real world game development studio. The hands on lab time provides the students with an opportunity to experience, and solve, the day to day team collaboration issues that arise in development.

In this course students learn basic concepts and operations with matrices, vector dot product and cross product. Students use matrix transformations to translate, scale, and rotate 2D and 3D objects with respect to the origin of the system of coordinates and to the center of the object. Complex numbers are expanded to introduce quaternion concepts for rotating objects. Through various in-class activities and assignments, students use mathematical concepts to comprehend effective 3D animations.

This course provides students with the essential knowledge of data structures and algorithms required to build video games which run more efficiently. Students learn how to design and implement custom data structures such as arrays, queues, stacks, linked lists, trees, and graphs.  Students gain practical experience using the standard C++ data structures and algorithms provided by the Standard Template Library (STL). In a series of labs, students recognize which data structure and algorithm are the best suited to solve a particular problem. Students evaluate the theoretical time and space complexity of algorithms and determine their actual performance using benchmarking methods.

Requirements

Admission Requirements

Ontario Secondary School Diploma (OSSD) with the majority of Grade 11 and 12 courses at the C, U or M level including the following prerequisites:

  • Grade 12 English at the C or U level
  • Grade 12 Math at the C, U or M level

For OSSD equivalency options, see Admission Requirements.

If you are missing prerequisite courses, enroll in the Career/College Prep program - free for Ontario residents who are 19 years or older. 

Other Requirements

Suggested Computer Hardware:

Students of the Game Programming program will require access to a Windows 10 capable PC with the following minimum specs:

  • Processor: Six-Core @ 3.4GHz or above
  • Memory:  16 GB RAM or higher
  • Internal storage: 500gb SSD hard drive or larger
  • Graphics Card: NVIDIA GeForce RTX 2080 SUPER or above

Fees

2024-2025

Tuition
Program Fees
Ancillary Fees
Total
CAD
Tuition
$3,144.86 CAD
Program Fees
$150.00 CAD
Ancillary Fees
$1,002.63 CAD
Total
$4,297.49 CAD

Fees are estimates only.  Tuition is based on two semesters.

Tuition
Program Fees
Ancillary Fees
Total
CAD
Tuition
$16,430.00 CAD
Program Fees
$150.00 CAD
Ancillary Fees
$1,771.65 CAD
Total
$18,351.65 CAD

Fees are estimates only.  Tuition is based on two semesters.

Cornwall

Enjoy waterfront views, modern health labs, a newly renovated library, and vibrant student spaces in our our Cornwall campus.

Cornwall Campus

Career Opportunities

Ubisoft Montreal on our graduates:

“We are delighted with the unique training they receive at the College. It provides the training required for critical technical needs in production systems and software development support that can be tricky to staff. “

Matthew Wiazowski
Recruiting Team Lead
Ubisoft Divertissements Inc.
5505 St-Laurent, Montréal
Tel: 514 490 2079

Career Opportunities

Graduates find employment with game studios in Canada and throughout the world. We are proud to have had graduates in recent years continue on to AAA studios such as Ubisoft and Eidos (Square-Enix). This industry is experiencing job growth that is out-pacing the training of potential workers. Canada has six of the top 50 game studios in the world and this includes one of the five top studios based on product sales.

Potential positions at these studios include:

  • Generalist Programmer
  • Audio Programmer
  • Build / Pipeline Engineer
  • Database Programmer
  • Online / Network Programmer
  • Front End Developer
  • Graphics Programmer
  • Tools Programmer

Testimonials

"The Program gave me the necessary tools to start my career in the game industry and always kept its content updated with new technology trends. The faculty has always encouraged me to improve and achieve my goals."
Felipe da Silva Simoes - Tools Programmer, Square Enix Montreal
" The final semester's project shows you the tools you will be working on in a studio. It tries to mimic the code submission/testing process by assigning different roles to everyone like programmer, designer, lead programmer, producer, builds specialist, each with their responsibilities."
Yash Kaushik - Game Programming (Tools Support Specialist, Ubisoft Toronto)

Program Contacts

Program Contact
James Dupuis
jbdupuis@sl.on.ca
613.933.6080 ext. 2120

Admissions Information
Click here to message Recruitment.

Click here to schedule an appointment with Recruitment.