General purpose game engine