2D C++ Game Engine Course

The highest level course offered at RP4K: experienced students learn how to make a capable 2D c++ Game Engine. The engine features an SDL2 core and renderer, a rapid-prototyping friendly Entity / Component / System model, Box2D Physics, an Event System, JSON Scene loading, and Lua run-time scripting. Students expand their C++ knowledge, and get introduced to Software Engineering fundamentals like working with the command line, backing up projects and coordinating with Version Control and object-oriented design patters.

  • Visual Studio 2012 Project Creation, Command Line, Git, and BitBucket
  • Project Dependencies, Starting the Engine & The Singleton Pattern
  • Systems, Setting up the Renderer
  • The Entity Component System Model
  • The Rendering System
  • Loading Scenes with JSON & Separating the Game from the Engine
  • Input
  • Events System
  • Physics System with Box2D
  • Behaviour System & Lua Scripting

Tool & Library Topics:
  • Adding External Libraries to Visual Studio Projects
  • Debug vs. Release Builds
  • Intro to the Command Line using Bash
  • Intro to Version Control and Project Backup using Git & BitBucket
  • SDL2 (Window Creation, 2D Rendering, Image & Texture Loading, Player Input)
  • RapidJSON (Scene Loading & JSON Parsing)
  • Lua (Run-tine Entity Behaviour Scripting)
  • LuaCPPInterface (Lua / C++ Binding)

Programming Topics:
  • Singleton Pattern
  • Inheritance
  • Interfaces & Abstract Classes
  • Binary Numbers & Arithmetic
  • Conversion between Binary & Decimal Numbers
  • Truth Tables
  • Bitwise Operators
  • Bitmasks
  • Dictionaries (C++'s std::unordered_map)
  • Delegates

C++ Topics:
  • Static vs. Dynamic Linking
  • Templates & Meta-Programming
  • Generic type-safe and fast Delegates
  • The Curiously Recurring Template Pattern
  • static_assert
  • Namespaces
  • Lua Binding

  • More info (and a video!) can be found on Real Programming 4 Kids' website.

    Andrew Macdonald ©2022