From the NannyMUD documentation
2000-12-16
NAME
concept - The concepts behind LPMUD's.DESCRIPTION
This is a historic document. It is kept to show how it once was, and what is behind the LPMuds. It was written by Lars Pensjö. Even the format of the text has been kept. Enjoy! IDEA BEHIND THIS GAME. I played Abermud a lot, and wanted to do something better (who doesn't). 1. A wizard can extend the game. 2. The game can be extended on fly, without rebooting the mud. 3. There is no difference between objects. Rooms, players and things are just objects. 4. All objects are specified in interpreted C. The specifications are compiled (loaded) first time they are referenced. 5. There is no player parser. All commands are defined by the objects. For example, the knife defines the command 'wield', and the leather jacket defines 'wear'. An object defines a command by associating it with a local function, defined in the object. When the user types that command, the corresponding function will be called. If the user types 'wear jacket', then "jacket" will be sent as an argument to the wear function in the jacket object. If the user types 'wear plate', the jacket wear function will detect that "plate" != "jacket", and return false. Then, another 'wear' command is tried, until success. When the user drops the jacket, all commands are removed that were associated with that object. 6. The rooms are just objects that define some commands like 'look', 'east', 'north' and such things. When the user then types 'north', the room function will do something to the player. 7. An object may define a function "heart_beat". It will be called every third second. This can be used for automoving monsters, torches burning down and time delayed traps... 8. The most complex object is the player object. It defines commands like "get", "smile" and "kill". 9. When a player becomes wizard, he will get a small portable castle. He can drop this anywhere, and it will grow and become a full scale castle. He can then rename it and extend it. It is okey to rename it to "entrance to hell" or anything. 10. The language that defines objects are similar to C. It is interpreted. 11. There is a builtin ed-compatible editor for wizards creating objects. There is also 'ls' and 'cat'.