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.

memorialuni 

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.

Banner


Ursina - A Game Engine Powered by Python
08/11/2024

Ursina is a new open source game engine in which you can code any type of game in Python, be it 2-D, 3-D, an application, a visualization, you name it.



GitHub Universe AI Announcements - Copilot And Spark
30/10/2024

GitHub has announced several improvements for developers at Universe, its annual conference. Developers will get multi-model Copilot and GitHub Spark, an AI-native tool for building applications in na [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Friday, 21 October 2022 )