A component based game framework