Nowadays huge games can have complex software systems. These aren't developed by one or two people, but a team with hundreds of developers. Therefore it is inevitable to design the game's architecture and structure carefully, and implement it in the most efficient way possible.
C++ is one of the most widely used programming language in the game development industry. It makes it possible to access the processor and memory in a low-level way, but it also supports object-oriented programming, required to build complex software systems. The new standards (C++11, C++14, and soon C++17) also expand the repertoire of the programmers to make more efficient software in a more modern and sophisticated way.
In this thesis, I present the architecture, the used techniques and algorithms of a first-person shooter game with three-dimensional graphics I developed. I also show the possibilities granted by modern C++ standards. For the graphical system of the game I used OpenGL, altough the principles and techniques can be used with other libraries as well.