A 2d game engine utilizing a component based entity system and external SDL API