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 modelBox2D Physics, an Event SystemJSON 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.


  1. Visual Studio 2012 Project Creation, Command Line, Git, and BitBucket
  2. Project Dependencies, Starting the Engine & The Singleton Pattern
  3. Systems, Setting up the Renderer
  4. The Entity Component System Model
  5. The Rendering System
  6. Loading Scenes with JSON & Separating the Game from the Engine
  7. Input
  8. Events System
  9. Physics System with Box2D
  10. 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 GitBitBucket
  • 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)