Basic design goals and philosophy behind the p2pmud project

Read this if you're interested in developing with p2pmud

p2pmud is written in a combination of XUL and Javascript. XUL is an XML based language used for describing UI (user interface) and if you are a coding/scripting type of person you've surely heard of Javascript. Odds are however, you probably don't really know today's Javascript.

Javascript has silently evolved over the last few years. While it started out as a clunkly little scripting language, it has blossomed into a very dynamic, full-featured language. Java may have gotten the spotlight for a long time, but its going to have to move over and make way for Javascript sometime soon.

p2pmud is a layered system

Each layer builds or relies on the previous layers beneath them. You can choose to pitch in and help out on the project at any layer(s) that suit you. There is a core layer, Level I, which provides a foundation layer. The next layer implementing actual game mechanics, is called Level II. Sometimes people are referred to by their Level, where Level here describes what they like to do. Someone who likes to create adventures and populate them with monsters and treasure is referred to Level III. They may or may not write anything in Javascript, they may just use what was provided by Level II. Level IV is considered a player who doesn't code or build at all, they just want to play. Level IV's are not to be looked down upon, after all, they are ultimately the ones we went to all this trouble for!

Level I

P2PMud at its heart implements mechanism, NOT policy. P2PMud is an enabling technology to provide the framework to make distributed MUDs work. It provides the ability for each local mud to discover other MUDs and create dynamic portals between them. We're not talking just instant messages here either. When your character steps through a portal, they and all their inventory are streamed across the virtual network so they actually appear in the other MUD. It also affords transaction base world persistence, meaning it continuously saves the state of your local MUD so it is *always* backed up and can be restored from any point. No matter whatever happens out there, you are safe in knowing you can always put things back the way they were on your own MUD. p2pmud provides access to all of this from a Javascript interface.

Level II

Since just a framework by itself is not very interesting, p2pmud provides a default game mechanics system (GMS) written in Javascript. This reference layer can be used as is to create your own world, or you can modify it as you see fit to build your own GMS! This is where all of the game mechanics are described and game policy is implemented. Love d20 rules? Start a project to implement d20!

Level III

Even a GMS by itself is not too useful to players. If your love is building worlds and adventures, just pick a GMS that suits you and start building away. Each GMS will have a set of tools or commands you can use to create rooms, spaceships, weapons, monsters, or whatever. They likely will come will entire libraries of objects you can use to build with. If you get bit by the scripting bug, you too can use Javascript to implement that +20 flaming broadsword with whatever special powers you can dream up! Whichever GMS you choose will provide an interface for game interactions your scripts can build on.

Level IV

If you're screaming that you just want to play already, the intent is that each GMS comes with a default world that consists of a single house your character can live in. Install p2pmud and your GMS of choice. Once you've launched it, you can use the peer discovery to create portals to worlds created by other people. Venture out through a portal into the virtual world, kill the baddies and get the girl! Maybe some day you'll learn to understand why others love to build so much and choose to expand your own little corner of the world!

Objects created in one GMS are not likely to work in another, so we expect to see a number of different virtual worlds spring up around each GMS. Since the GMS layers implement policy, these will likely start to develop around particular themes. For example, one GMS might be more suited for space adventures, one for ancient worlds, etc.