Realms won't be to hard to program really as they're just acting as a container for Zones. A way of breaking up Zones into groups and make it easier to find a Zone when your project contains thousands of them. Realms will have a few Properties but not many, I think they'll only need a Name & Description Property, along with a List to hold a collection of Zones.
Zones won't really be much more difficult than the Realms, they will need to hold a large number of Rooms, and have some default settings that can be used on all rooms when first created. Things such as Always Dark, Always Light, Cycle Day/Night, Default Smell/See/Hear/Feel descriptions, a SafetyZone option that can ensure the player is never attacked by monsters and a collection of NPCs and Monsters that can roam the Zone.
I'm still debating on the NPC collection, I'm wondering if that should be something setup within the NPC editor instead of assign the NPC to the Zone, this way one NPC isn't placed in multiple Zones by mistake. Monsters is acceptable because users can fight the same monster across multiple Zones, but typically you won't see the same NPC in multiple Zones. While assigning an NPC to a Zone during NPC creation prevents duplicate placement within the world, it will require the engine to scan every NPC in the game during startup to place the NPC as needed. It would be faster to just load the NPC list from the Zone, and load only the NPCs needed. Leaving it to the developers responsibility to ensure duplicate NPCs aren't placed in their world, so in the end i'll probably end up having the Zone editor add NPCs to the environment.
Now that Im thinking about it, there could be thousands of NPCs in a game, I'll need to work on either a search feature or a grouping feature to reduce the amount of time spent searching through NPCs
-- Posted from my iPhone