|
[help concept]
|
|
------------------------=======+=======----------------------------
|
| 1. A wizard can extend the game. |
| 2. The game can be extended on fly, without rebooting the mud. |
| 3. There are no differences 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 are 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 argument |
| 'plate' does not equal jacket and the jacket's wear function will |
| return false. Then, another 'wear' command is tried, until success. |
| When the user drops an object, all commands are removed that |
| was associated with that object. |
| 6. The rooms are just objects that defines 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, etcetera. |
| 8. The most complex object is the player object. It defines commands |
| get, drop, 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 okay to rename |
| it to 'entrance to area' or something thematic with the area. |
| 10. The language that defines objects are similar to C. It is an |
| interpreted language called LPC named after its creator. |