Building a 3D Game Engine in C++