This is the code repository for Mastering C++ Game Development, published by Packt. It contains all the supporting project files necessary to work through the book from start to finish.
Although many languages are now being used to develop games, C++ remains the standard for professional development. The majority of professional libraries and toolchains are still built using C++. The primary goal of this book is to teach you how to harness the power of the language and provide you with the ability to build high-quality games.
To begin, you will be presented with, an overview of popular development methodologies, and a short guide to updated features of the C++ 17 standard. You will learn how to leverage existing libraries such as OpenGL and the STL (standard library) to build complex systems. Throughout the journey, you will also build a set of C++ 17 compatible libraries that can be reused in your own development projects. In the last half of the book, you will work with demos designed to introduce you to advanced rendering techniques, interactive physics, advanced AI techniques, and even multiplayer game concerns with modern networks.
By the end of the book, you will have a good understanding of the structure of modern high-end games and have the tools to create them.
All of the code is organized into folders. Each folder starts with a number followed by the application name. For example, Chapter02.
The code will look like the following:
#include <BookEngine/IGame.h>
#include "App.h"
int main(int argc, char** argv)
{
App app;
app.Run();
return 0;
}
To get the most out of the examples and development experience, it is recommended you to have a relatively newer development device with at least the following things:
- CPU: 4 cores
- Memory: 8 GB RAM
- Disk space: 40 GB
The examples (with a few exceptions) have been designed to run on both macOS and Windows PC devices. To follow along you should have the following software installed:
- PC: Visual Studio 2015 Community or better
- macOS: XCode 8.x or better. Other software needed will be described as required.