a text based game framework