Programmers do not re-invent the wheel. Many programming problems have been solved many times and have now crystalized into well-known solutions and best practices.
In software development we call these solutions “Programming Patterns”. Based upon the early work of "The Gang of Four” there are many patterns that apply to game programming. Next to that there are a few patterns that are very specific to game(engine) programming. Part of the course material is based upon the more recent book "Game Programming Patterns".
In this course we discuss these patterns, learn when we need them and when we don’t need them. We explore their implications on performance, how they improve memory access patterns, how they “de-couple” your game code.
While doing that we learn to use best practices and tools used in our industry. Ranging from nifty programmer tricks to using source control, unit tests, build systems and debugging tools.
Technology used: Microsoft Visual Studio, C++, Lua, OpenGL, Git, ...