About Dynamic MUD Language
The purpose of the Dynamic MUD Language (DML) is to make mobiles and objects more
intelligent and responsive to the hero with the aims of making
Tempora Heroica more interactive and challenging without
requiring the narrator needing
to write C code for special actions. DML is a powerful, flexible
scripting language that allows the MUDs narrators to create some
sophisticated behaviors and interactions for the hero.
The original languages basic framework and driver was created in late 1996 and early 1997. Initially,
it was only intended for mobiles and was called then Dynamic Mobile Language. DML has been refactored and enhanced many times
since then. A major extension of the language happened in 2000, when DML was extended to work with objects. The M in the
languages name changed from mobile to MUD at that time.
Hello world the DML way
To begin, create a new mobile and name it the test monster. Having mobiles, such as our
test monster, speak is easy with DML. For example, take this short DML program:
hello: say ^Hello world.^
goto hello
Each part of a DML has an identifying tag, such as hello: . At the end of each DML, a goto command is added to keep the DML
working in a loop. The say command orders the test monster to speak, and it will say the message that is between the two carets (^). When
this DML is added to the test monster, it will quickly and continually say Hello world. To slow it down, the DML can be altered
by adding a wait command:
hello: say ^Hello world.^
wait 1
goto hello
Now the test monster will briefly pause before repeating Hello world. again. While this too is not a very useful DML script,
it does show what a narrator can do to begin to make DML scripts more useful and interactive.
Objects with DML
Here is an example of an object with a DML: a simple talking statue.
hello: say ^Hello world.^
wait 1
goto hello
Note that the script is exactly the same as the simple Hello world example shown above. The syntax of DML is that flexible.
DML is also a living language and is responsive to the needs and
creative ideas of the narrators.