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.
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.
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; 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.
Students learn C++ object programming and the creation of programs for 2D games using C++ libraries.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Suggested Computer Hardware:
Students of the Game Programming program will require access to a Windows 10 capable PC with the following minimum specs:
- Core i3 (5th gen) CPU or higher.
- 8gb Ram or higher.
- 250GB Hard drive or larger (Ideally SSD).
- Graphics card capable of DirectX 10 or higher.
- A stable Internet Connection.
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.
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. “
Recruiting Team Lead
Ubisoft Divertissements Inc.
5505 St-Laurent, Montréal
Tel: 514 490 2079
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
613.933.6080 ext. 2120
Click here to message Recruitment.