2D entity component based game engine