Entity-component-system based 3D game engine