Last week, Richard Bartle of the University of Essex came in to talk to our participants. Bartle was one of the pioneers of the massively multiplayer online game industry, being one of the co-creators of MUD1, the first Multi User Dungeon (MUD).
Computing at the University of Essex
It’s hard to imagine what working in computing at the university was like when Bartle was a student – working on teletypes, and programming while not knowing whether your code worked until the next day.
While part of the Computer Society at the University of Essex, Bartle met the secretary of the society, Roy Trubshaw. Just before they met, Trubshaw came across something called interprocess communication (IPC), and applied to experiment with this; but you needed certain privileges in the computer science department to do what he needed to do, which he was denied.
Trubshaw therefore decided to write his own IPC library. Looking through manuals to try and find something that would let him do it, he found out how to make a memory segment (the high segment) that was shared but also writeable. He saw that you could use this to share data and data structures, and as a result wrote a program called MUD, a game which would allow several people to share the game world at the same time.
Text adventures and MUD
The name MUD was intended as a tribute to the Dungeon variant of the game Zork, which in turn had been inspired by an older text-adventure game Colossal Cave Adventure, also known as ADVENT. These were two of the very few games that were available at the time – since computers cost millions, games were seen as a waste of resources.
There was no access to the ADVENT source code, but Trubshaw went through and figured out how it worked. In ADVENT, you had to parse what users typed to your code; what Trubshaw wanted to know was how the code for ADVENT handled some of the data structures. ADVENT accepted commands as single verbs or as verbs with a noun – so “look” would be an example of the former, and “take all” of the latter. Trubshaw’s code, MUD, could do this, but also introduced verb noun preposition noun: “open door with key”, for example.
Version one of MUD was just a shared memory test that took about two hours to write. Version two figured out content, taking a bootstrap approach.
Bartle's changes to MUD
When Bartle first played the game, he and Trubshaw noted several problems:
- It’s messy to parse meta-commands to add new player commands
- You had to save the game periodically to commit your work
- Programming was a grind
Trubshaw therefore decided to rewrite the program in BCPL (where previously it had been in an assembly language called MACRO-10). He completed about a quarter of this before his finals intervened, at which point Bartle wrote the rest. This became known as MUD1.
ADVENT used an inelegant mixture of hard code and soft code for its content. Trubshaw based some of his language, Multi User Dungeon Definition Language (MUDDL) on parts of this.
Although MUDDL was powerful, it still wasn’t powerful enough:
- The action format didn’t allow loops or multiple tests
- Special commands had to be hard-coded in
- There was no proper class structure
Bartle therefore rewrote MUD from scratch in the new definition language “MUDDLE”, creating MUD2:
- Separated vocabulary from programming objects
- Stronger parsing
- Associated with patterns – so introduced classes (in the sense that there could be multiple types of an object)
- MUDDLE classes could also have multiple parents
- Object hierarchy which ended up being 14 levels deep
- Easy to program in – it’s quite an intuitive and an imperative language. There’s even a MUDDLE-to-C compiler
Bartle has more recently been working on a general purpose language to replace MUDDLE called Clear, which he has been designing for a few years now.
He advises that playing with computer game design for fun can be more than just fun – a multi-billion pound industry came out of what he and Roy Trubshaw did at the University of Essex.