Top

Game Programming

Cornwall Campus | Program Code: 0974 | 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 on our Study at Ireland page.

Program Details

Code 0974
Start Date May, September
Credential Ontario College Diploma
Campus Cornwall
Program Length 2 Years
Delivery Full-Time
Open for international students
Special May Intake - International Students Only

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

2020-2021

N/A

In this course, students learn the fundamentals of a current programming language used in the Gaming Industry.  Topics addressed include; standard software design methodologies, custom design of simple 2D 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 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 introduces students to the creation of 2D digital images, 3D game assets and the design of levels using assets. Topics include; sprite sheets, character creation, polygon modeling, texturing, lighting, animations, building expansive landscape environments and exporting assets to game engines. Course learning activities center on the game development pipeline, workflow and best practices. The game art skills learned in this course are used to help enhance game projects throughout the program.

This is a web design and database development course. Using HTML5, JavaScript and CSS, students learn to design a professional web portfolio where they showcase various projects related to career applications. Using databases and server side scripting, students examine scalable data models and structures, query databases for results and create a dynamic leaderboard application during their lab activities.

N/A

Students learn C++ object programming and the creation of programs for 2D games using C++ libraries.

Prerequisite(s): GAME102

In this course, students are taught intermediate programming concepts available through the use of C++. Students learn about bitwise operations, file streaming, exception handling, and string manipulation. Students are also introduced to recursive functions and learn how to solve programming problems recursively. Through lab and class activities students create projects which interact with a game controller and save/load data from text files.

Prerequisite(s): GAME102

In this course students create mobile web apps and games while studying the differences between console and mobile games hardware, design, and economics. Through a combination of labs and in class activities, students learn advanced HTML5, JavaScript and CSS to create games and format visuals to support a wide variety of device resolutions and dimensions. Students build fully functional mobile games which include user input (touchscreen and mouse), animation of characters, 2D physics, sound effects, music and the loading of images and JSON files. Students build a progressive web app (PWA) that emulates an iOS & Android app experience which is accessible offline and also leverages the use of the devices camera and the ability to send push notifications when applicable.

Prerequisite(s): GAME111

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.

This course provides a review of fundamental laws and operations in algebra and trigonometry: linear, quadratic, exponential, logarithmic, and trigonometric functions, related graphs and equations, vectors, and their applications. Through in-class presentations, learning activities and group work, students are introduced to various math concepts which gives them the knowledge necessary for future technical courses.

N/A

In COMM 234, the emphasis is on reinforcing writing, reading, and research skills for a variety of professions. Short reports, summaries, resumes, and cover letters are used to enhance writing and analytical skills. American Psychological Association (APA) format and documentation is reinforced. Oral communication is developed through a variety of formal and informal speaking activities.

This course introduces students to concepts of render programming through the use of shaders and graphics libraries. Throughout the course students utilize lab time and in class activities to explore the stages of the graphics pipeline, communication of data between the CPU and the GPU and Normal & UV data for the purpose of creating 3D objects within game worlds. The concept of converting 2D screen pixels to 3D scenes is explained preparing the students for a greater understanding of graphics programming and the render programmer role.

Prerequisite(s): GAME202

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.

Prerequisite(s): GAME202 + GAME212

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 using sockets 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 security and data integrity are emphasized when implementing client server communication through Remote Procedural Calls (RPC) using HTTP requests. Students use a current game engine to communicate from clients to a server and create a multiplayer game experience.

Prerequisite(s): GAME202 + MATH10

In this course students are introduced to advanced C# programming concepts used in scripting with the Unity game engine. By carrying out a series of labs, students implement advanced programming constructs such as generics, object oriented design, interfaces, extension methods, co-routines, delegates, and more. Students learn about the singleton architectural design pattern to create game managers which control the state of their game objects. Students are familiarized to an industry standard source control software and learn to work collaboratively in groups to build small games. 

Mathematics for Games Students learn the basic concepts of matrices and coordinate systems for use in 3D games.

Prerequisite(s): MATH10

This course provides applications of mathematical concepts to calculate physics quantities such as distance, height, time, velocity and acceleration in 1D, 2D, and circular motions. Average and instantaneous rates are calculated by different methods.  Vectors and trigonometry are applied to horizontal, vertical, projectile motions, and to forces using Newton’s Laws. Work, conservation of 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. 

Prerequisite(s): MATH10

This course gives students exposure to the ethics and legalities of software with respect to intellectual property protection and the implications of patents and copyright protection in game technology. Students also discuss and examine the impact that technology has on policy with respect to ethics. Controversial ethical issues in the gaming field are explored and debated during class discussions and activities. These may include AI, censorship, privacy, social issues, economics, hacking, and identity theft.

Students are introduced to scripting languages and learn how to use them to interface with their computer and gaming code. 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 will use Python scripts to interface with large software components and existing games. Students then learn how to write windows command scripts to help automate daily tasks involving file operations, the task scheduler, windows processes & services and the build pipeline.

Prerequisite(s): GAME202

In this course students are formed into 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. 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.

Prerequisite(s): GAME312

This course allows the students to explore advanced effects capable through the use of different shaders within the graphics pipeline. Through lab exercises, students leverage internal capabilities of shaders to produce visual effects such as fog, grass and terrain generation learned in the lectures. By leveraging camera systems and viewports students analyze the concepts of raycasting and shadowmapping. Analysis of current professional game engines assist students in understanding the impact graphics programming plays on creating virtual worlds.

Prerequisite(s): GAME300 + MATH 21

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.

Prerequisite(s): GAME202 + MATH10

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. 

Fees

2020-2021

Tuition
Program Fees
Ancillary Fees
Total
CAD
Tuition
$2,721.36 CAD
Program Fees
$0.00 CAD
Ancillary Fees
$968.32 CAD
Total
$3,689.68 CAD

Tuition fees are subject to change pending confirmation of provincial Ministry Funding rates for 2021-2022.

Tuition
Program Fees
Ancillary Fees
Total
CAD
Tuition
$14,600.00 CAD
Program Fees
$0.00 CAD
Ancillary Fees
$1,679.65 CAD
Total
$16,279.65 CAD

Tuition fees are subject to change pending confirmation of provincial Ministry Funding rates for 2021-2022.

Cornwall

Our Cornwall campus has a brand new library, new health simulation labs, renovated student common areas and more to make your transition to college life an easy one.

Cornwall Campus Exterior
cornwall library
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 - Tools Support Specialist, Ubisoft Toronto

Program Contacts

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

Admissions Information
Contact a member of our recruitment team
ask@sl.on.ca
1.800.463.0752 and ask for Recruiting

International Students Contact
international@sl.on.ca
+1 613.544.5400 ext. 5514