The title kinda says it all on this one, but it's still quite important. Conventionally, I tend to call characters "Entities" in order to avoid confusion with the C-string components, but aside from that this is mostly just setting up structure for each thing and making constructors for all of them. A zone is an area that can contain characters, be it in a dungeon or in town. You don't need to worry about dungeon or town generation for now, just make a zone that can hold a list of characters in a dynamic structure (i.e. vector or something), as well as a description.