|Do you know where your variables are?|
It's been a while since I played D&D but I was thinking that your work might be extensible to general descriptions of inhabited virtual worlds. In that case I'd try and boil down your huge knowledge of D&D to the absolute basic minimum number of concepts you need to describe what playing D&D is about. Maybe the basic ideas of players, monsters, and Dungeon Master are something you want to use. I don't know how you intend to use the module(s) but I just read Neil Stephenson's The Big U and it describes using a huge computer to run the game (with a DM seated in front of it) while the players actually run through the sewers in 2-way radio contact.
Anyway you might want to check out Games::Maze in CPAN just for an idea of how to generate mazes and populate them. Maybe you don't want this because the mazes are all preprepared, but the point I wanted to make is to think about how this system will actually be used and try to conceive of the main scenarios for use. This may help you decide what metaphors for game play are useful and the objects can be defined naturally from that.
I'm not sure if you are trying to build something like an intelligent gaming board on a server somewhere that interacts with many browsers, or if it is just a totally abstract system of descriptions of gaming and objects in a game that doesn't suggest a certain implementation. Or is this maybe just for a single user? I think the real question is, are you trying to build a general simulation system (it might work for military simulations too) or a simpler gaming aid for a DM to use. The nice thing about modules is that it helps you compartmentalize your thinking, and keep it simple. Of course you can just dive in and not worry about doing lots of revisions!
If you are trying to a general system to describe and run all kinds of simulations of players in virtual worlds, then you can start from the ground up and try to describe what D&D is all about from the ground up instead of starting with advanced concepts like monsters and multisided dice.
But the idea of respecting Perl that came out above I think has more to do with taking care of how you choose the underlying metaphors on which your system is built. If they are powerful metaphors which resonate strongly with the realities of gaming, you will be able to extend them for a long, long time.
In reply to Re: Modules: Building blocks for the Daft Adventure