Memorial University's Intro to Game Programming
Written by Nikos Vaggalis   
Friday, 21 October 2022

Sub-titled, "Make your own 2D game engine using C++ and ECS", this is a course for students interested in learning the fundamentals of game programming and game engine architecture.

The full course taught by Professor David Churchill is being made available for free on YouTube. I say 'is being' and not 'has been' because it is ongoing with two lectures per week being recorded and posted online. As of writing this piece, the first 10 are available, of a total of 23.

In it you learn game programming and more specifically how to make your own 2D game engine using C++ and ECS. But first of all what is ECS? ECS is an architecture for making Games and stands for Entity Component System:

  • Entity - any object in the game, like the player, a tile, a monster etc.

  • Component - entity properties, like position, texture, animations, health or attack damage, gravity, etc. Pure data, no logic

  • Systems - all of the game logic. Movement, rendering, sounds, physics.

As the title says you need to know the basic C++ data structures and OOP in order to get the most out of the course,
albeit being a (great) game programming series targeting beginners. Dave Churchill Associate Professor of Computer Science at Memorial University in Newfoundland, plays a vital role in the high quality of the course by explaining concepts concisely. Topics include an introduction to:

  • vector math for games
  • rendering
  • animation
  • artificial intelligence
  • collision detection
  • game physics
  • user-interfaces

The syllabus in detail

1 Intro / Syllabus
2 C++ 1
3 C++ 2
4 Assignment 1 + SFML
5 Intro to ECS
6 EntityManager / Game Math
7 Assignment 2
8 Collision Detection / Resolution
9 Sprites / Textures / Animations
10 Actions / Replays / A3 Architecture
11 Assignment 3
12 Ray Casting / Line Intersection
13 Cameras / Views
14 Course Project Information
15 Pathfinding / Steering
16 Game Tools / Drag & Drop
17 Assignment 4
18 Game Loops
19 Cache / Memory Pooling
20 C++ Code Profiling
21 User Interfaces (sfml + imgui)
22 Introduction to Shaders
23 Particle Systems

Also, the SFML graphics library is being used.

There's also a shared Google docs document that contains the course's schedule with links to the videos and slides of the lecture.
Unfortunately the course assignments and files will not be released publicly. The lectures are streamed on twitch and then end up recorded on YouTube.

If you are looking to get into game programming, then this is a first class opportunity to learn the basics from the best.


More Information

Youtube playlist

Document with links to material

Related Articles

YouTube Courses On C++, Python and Blazor



To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


Eclipse JKube 1.16 Goes GA

Eclipse JKube makes deploying your Java application to a Kubernetes cluster a breeze. Let's find out what's new.

Quantum Computing Prize Awarded

John Preskill, Professor of Theoretical Physics at the California Institute of Technology, is the eighth recipient of the John Stewart Bell Prize for Research on Fundamental Issues in Quantu [ ... ]

More News

raspberry pi books



or email your comment to:

Last Updated ( Friday, 21 October 2022 )