T E M P O R A   H E R O I C A

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 MUD’s narrators to create some sophisticated behaviors and interactions for the hero.

The original language’s 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 language’s 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.