I’ll admit it: I don’t know very much about MUDs. (Nor am I familiar with the various spinoffs — the MUCKs, MOOs and MUSHes — that proliferated in the early days of the Net.) Many years ago, I would occasionally peek over the shoulder of someone who was engaged in playing one of those new-fangled online multiplayer games, only to shake my head in bewilderment at the strangeness of what was essentially a bunch of people who’d never met in real life, chattering away on the internet by laboriously typing and sending messages to each other in plain text. It seemed boring and weird and I was convinced it would never catch on.
Today, of course, MUDs are practically ancient history, if you’re reckoning in tech years. They were the precursors to a multiplayer online gaming industry which is worth billions of dollars, but which has apparently left the world of pure text far behind.
So, it’s quite possible that I would never have had any reason to even think about MUDs again — if it hadn’t been for an improbable set of circumstances that brought them crashing into my orbit and into contact with what has become the mainstay of this irregular blog of mine: text adventure games on the 8-bit BBC Micro computer.
You see, a wide-eyed dreamer called Darren Higgs recently got it into his head that it might be a good idea to recreate one of the earliest MUDs as a single-player text adventure game on the BBC Micro — and he actually did it, too. It’s called LAND, and you can play it online right now:
LAND was originally a MUD that ran on the DEC mainframe computer at the University of Essex in the 1980s and 90s. The mainframe version of LAND was written by Darren Higgs (alias Toodleoo), Jonathan Cornell (Arnie), Bret(t) Giddings (Bret), and Richard Thombs (Zarf) — and it was Darren Higgs who, in 2020, ported the game to the BBC Micro.
Before LAND, the legendary Essex University mainframe had hosted the original MUD, known as MUD1, which was created by Roy Trubshaw and Richard Bartle in 1978. Professor Bartle, now a popular writer and speaker on gaming and virtual worlds, licensed MUD1 to Compuserve in 1987, which meant that the only MUD that was left running on the Essex mainframe was MIST, a “derivative” of MUD1 with “similar gameplay”.
It was around this time that Darren Higgs enrolled at Essex and, already being a fan of text adventuring on the BBC Micro from a young age, eventually found his way to the computer lab to see if he could have a go at this much-fabled MUD thingy that even the Beeb magazines couldn’t help talking about. Darren himself takes up the story on the Stardot forum:
The experience of playing MIST at Essex — and then of creating his own MUD on the same machine, using Trubshaw and Bartle’s MUDDL programming language — obviously had a lasting impact on Darren because, decades later, he decided to recreate LAND for the retro scene on what was presumably one of his favourite home computers, the venerable Beeb.
On the mainframe, LAND featured over 200 rooms, lots of puzzles, and various “mobiles” or NPCs that players could fight in order to level up in their quest for the prized status of wizardhood. Also, like any MUD, LAND was, at heart, a multiplayer game — but the multiplayer feature would clearly have to be the first thing to dump in the re-engineering of LAND if it was to run on a standalone 8-bit machine (or an emulator thereof) which boasted a whopping 32 kilobytes of user memory and a 2MHz processor.
But even if you accept that the multiplayer experience has to go, squeezing the game into the Beeb is still a lot to ask. But Darren had an answer. Working from his original maps and notes, he wrote some bespoke text-compression routines in BBC BASIC; developed a custom “adventure engine” — a hand-written program in assembly language, targeting 6502 machine-code; and made use of seven banks of Sideways RAM.
Sideways RAM (SWRAM) is an ingenious bit of vintage machine architecture — or, as Wikipedia more prosaically puts it, it was “Acorn’s bank-switching implementation” — and it allowed the humble Beeb to “page in” one of a number of different memory banks, each containing 16 kilobytes’ worth of RAM, as and when a program needed it — and to page it out again after use.