A bottom-up implementation of a C++ game engine using SDL and OpenGL