skip to Main Content

Introduction to Memorial University Games Programming

Subtitled, “Build your own 2D game engine using C++ and ECS”. This is a course for students who want to learn the basics of game programming and game engine architecture.

The full course taught by Professor David Churchill is made available for free on YouTube. I say “is in progress” and not “has been”, because it is in progress with two conferences per week recorded and posted online. At the time of writing this article, the first 10 are available, out of a total of 23.

You will learn game programming and more specifically how to create your own 2D game engine using C++ and ECS. But first of all, what is the ECS? ECS is an architecture for creating games and stands for Entity Component System:

  • Entity – any object in the game, such as the player, a tile, a monster, etc.
  • Component – properties of the entity, like position, texture, animations, health or attack damage, gravity, etc. Pure data, no logic
  • Systems – all game logic. Movement, rendering, sounds, physics.

As the title suggests, you should know basic C++ data structures and OOP in order to get the most out of the course,
although it is a (large) series of game programming aimed at beginners. Dave Churchill, Associate Professor of Computer Science at Memorial University of 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 program in detail

1 Introduction / Syllabus
2 C++ 1
4 Duty 1 + SFML
5 Introduction to ECS
6 EntityManager / Game Math
7 Duty 2
8 Collision detection / Resolution
9 Sprites / Textures / Animations
10 Actions / Replays / A3 Architecture
11 Duty 3
Throw 12 Rays / Intersect Lines
13 Cameras / Views
14 Course project information
15 Orientation / Steering
16 Game tools / Drag and drop
17 Duty 4
18 game loops
19 Cache/memory pooling
20 Profiling C++ code
21 user interfaces (sfml + imgui)
22 Introduction to Shaders
23 particle systems

Additionally, the SFML graphics library is used.

There is also a shared Google docs document which contains the course schedule with links to the lecture videos and slides.
Unfortunately, assignments and course files will not be made public. The conferences are broadcast on twitch and then end up being recorded on YouTube.

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

More information

Youtube playlist

Document with links to the material

Related Articles

YouTube course on C++, Python and Blazor

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




or send your comment to: [email protected]

Back To Top