A component based game engine