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


NIST Password Guidelines - The Nine Commandments
01/10/2024

The US National Institute of Standards and Technology (NIST) has issued the second public draft of the proposed new version of its Digital Identity Guidelines. It includes updated rules [ ... ]



Android Apps Can Block Being Sideloaded
17/09/2024

Android developers now have a way to prevent users sideloading their apps, and users are seeing the effects. Google Play Integrity API, which was released in June, blocks sideloading.


More News

kotlin book

 

Comments




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

Last Updated ( Friday, 21 October 2022 )