Nowadays games are built using flexible, complex and reusable game engines due to their increasing production cost. The golden age of the rigid hiearchy based game engines is long gone, mostly due to their lack of flexibility and reusability.
The entity-component architecture based game engines are on the rise and there is no sign of a new standard yet. The reason behind this is that they have all of the just mentioned good attributes. The market leading Unity 3D and Unreal Engine are both component based engines and they are indeed very popular amongst both independent and AAA developers.
In this thesis I present a modern game engine, built in C++ (as the most common language in the game industry), around modern design principles and with modern libraries. Entity-component architecture using projects can be easily made with the use of a markup language and lua as a scripting language without modifying the internals of the engine.
Used libraries: OpenGL, SDL2, Assimp, Bullet Physics, Boost, LuaBridge