Up to Main Index

                          A BRIEF HISTORY OF WOLFMUD

To celebrate 30 years of WolfMUD development I have tried to document it's
development history, freak accidental occurrences and blind luck happenings.
For me it's been a very nostalgic trip and I hope all who read it enjoy it.

--
Diddymus



It was 1984. A bespectacled 13 year old kid sat down at a BBC micro and
started coding. Little did he realise this was to be the start of his life's
work.

To start at the beginning we need to go back a few years to 1982. This was the
year that Steve Jackson and Ian Livingstone had published The Warlock of
Firetop Mountain[1]. A paperback book that was a single-player adventure. All
of the paragraphs in the book were numbered. You read a paragraph and at the
end it would say: if you want to do 'A' turn to paragraph X, to do 'B' turn to
paragraph X. I spent hours reading, playing and exploring all of the different
story lines.

To no surprise after 1982 came 1983 and several things of note occurred.

1983 was the year when Level 9 - a British computer games company - published
Colossal Adventure. This was a text based adventure game based on Adventure by
Will Crowther and Don Woods. Later that same year Level 9 would also release
Adventure Quest and Dungeon Adventure. All three formed the middle-earth
trilogy, later renamed Jewels of Darkness.

1983 was also the year when TSR released the 3rd edition of the Dungeons &
Dragons basic boxed set. The original Dungeon & Dragons - published in 1974 -
was considered the start of modern role-playing games.

It was also in 1983 that a British publisher - Usborne Publishing - published
a small, thin, 48 page book called Write Your Own Adventure Programs[2]. It
guided the reader through the steps of writing an adventure game in the BASIC
programming language that would run on the popular home micros of the time:
ZX81, ZX Spectrum, TRS-80, Apple, Dragon, ZX81, Oric, BBC micro, Commodore Pet
and Commodore VIC-20.

Now we arrive back in 1984 with the bespectacled 13 year old kid. He has a
healthy diet of science fiction, fantasy, text adventure games, role-playing
games and books with a recipe for creating his own adventure games. He's been
coding in BASIC for a few years and knows the BBC micro inside and out. What
next? He needs a project...

1984 sees the release of L - A mathematical adventure game. This game is
deemed acceptable in schools for being educational. Soon all of the BBC micros
at the kid's school are running it.

After seeing how popular L - A mathematical adventure game is our kid decides
that writing an adventure game could be fun. So on that fateful day in 1984 he
starts to write Wolf - World Of Living Fantasy - a standalone single player
adventure game. It is written in BBC BASIC and runs off of a BBC model B using
400k 5 1/4" floppy disks. It's well received and is on most of the BBCs during
lunch breaks.

In the summer of 1984 our kid gets a copy of Assembly Language Programming On
The BBC Micro[3]. He also gets a copy of The Advanced User Guide For The BBC
Micro[4]. So what is he to do with all of this assembly language information
he now has? As a learning exercise he rewrites Wolf in assembler of course!

Then in 1985 everything changed.

There was an inter-schools computer quiz and we were going up against St.
Paul's school. My opposite number - for as you have guessed I am the kid - was
a chap called Lorenzo Wood. Due to him we happily got slaughtered. Afterwards
we were having a drink and a chat and he saw that one of the school BBCs had a
modem hooked up to it. He then asked if he could show us something he had been
working on. We said yes and he dialled into a system called MirrorWorld. After
a brief demo he gave me the details in case I wanted to have a look on my own
later. Which I did. In fact I played on that system a lot. The name I picked
for my character was Diddymus - which I still use to this day. Later I found
out that Lorenzo was Penfold on the system which was run by Philip Cordery -
Pippin.

MirrorWorld was a MUD  - Multi User Dungeon. It was like a text based
adventure game but multiple players could log into the system at the same time
and chat, cooperatively or individually solve puzzles, find treasures or
sometimes attack each other or various monsters. I remember MirrorWorld with
great fondness.

So I had my own text adventure game called Wolf, I had acquired a copy of
Econet Advanced User Guide[5] and all of the school's BBC micros were
networked together using Econet. How hard could it be to make Wolf networked
and multi-user? I had no idea how early this actually was in the history of
MUDs and never even thought about it.

Wolf went live on the school network sometime in 1986 and was very popular
with the other pupils - teachers not so much.

While digging around for information and things for this article I found an
old partial listing. On it was this passage of text:


  Wolf....

          World
          Of
          Living
          Fantasy

   Wolf is intended to be a multi-player adventure game based on the likes of
  MUD. A lot of the work that has gone into this game since 1985 has come as
  the result of playing a game called MirrorWorld. I was introduced to
  MirrorWorld by accident, chance and many other things which is a good thing
  because without MirrorWorld this game would never be. Many thanks to Pip and
  all the other people, be they players or writers, who gave me the ideas and
  encouragement I needed.

                                                  Andrew Rolfe, 4th April 1990


On the 15th August 1989 I purchased a quirky little portable computer called
the Z88. It was A4 in size, had a rubbery keyboard, a letterbox LCD screen
with 8 lines and was powered by 4 AA batteries. It also ran BBC BASIC. This
little machine let me work on WolfMUD any where I was with some free time.

The Z88 wasn't used for long. On the 10th October 1989 - I purchased an Amiga
A500 with an unofficial 8Mb memory upgrade board. The Amiga came with
AmigaBASIC which is what Wolf was rewritten in next. Wolf was still
multi-player but used the RS-232 serial port for 'networking'. Some time later
I purchased an expensive A590 20Mb hard disk. This was needed to make the
Lattice C compiler I had purchased usable - even with dual floppy disks you
ended up doing a terrible floppy switching tango. So, 1989 Wolf was rewritten
in C because I had decided to teach myself C. At least it was ANSI C, however
a typical coding cycle was: edit, compile, run, reboot. The Amiga had no kind
of memory protection and the compiler didn't catch a huge amount of errors.

Next we enter the beginnings of Wolf's PC era. On the 9th December 1991 I
purchased a Toshiba T2000SX laptop with the upgraded 40Mb hard drive. The
processor was a 386SX 16Mhz with 640k RAM, a white on blue CGA screen and
running DOS and Windows 3.0. This was to be the first of many Intel PC
machines. After toying with the machine for a few months on the 20th February
1992 I purchased a copy of Borland's Turbo C++. I then taught myself C++ while
rewriting Wolf yet again. This would be the first time that objects in the
game were actually modelled after real objects using OOP.

On the 30th April 1992 I went to a small PC component supplier called
'Heathrow Computer Systems Ltd.'. I had found them in a computer newspaper
type publication called Micro Mart where they had an advert and comprehensive
list of components. What I walked out with - after many hours of assembly -
was a 386SX 16Mhz, 4Mb RAM, 40Mb hard disk, OAK VGA desktop PC[6]. Wolf
development was swiftly migrated over to it, still in C++ using Turbo C++.

1992 is also notable for being the first time I used a Unix like system. On
8th September I ordered a copy of Coherent 4.0 - a Unix like operating system
from the Mark Williams Company. It was the first Unix like system that ran on
a PC. The manual for it was huge and heavy - over 1,000 pages. I still have
and use the manual as it is a great treasure trove of old arcane Unix stuff
including good documentation of old tools and utilities. It had all of the
utilities and compilers you would expect of a Unix system based on Version 7
Unix. Alas it didn't have a TCP/IP network stack so Wolf was still using
serial ports. By this time I actually had an old VT220 terminal for testing
and messing about with. At this point I rewrote Wolf again in C.

Sometime in late 1993 I had my first taste of Linux. The distribution was
Yggdrasil and came on two floppy disks. The kernel was version 0.99.5. It was
very rough and difficult to install and I'm afraid it didn't last on my
machine for very long.

In early 1995 I purchased Borland C++ and was running it on Windows 3.11.
Mostly I was using it for C and not C++ and continued with the version of Wolf
rewritten on Coherent. A few months later I upgraded to Windows 95 - this was
the first and only time I actually purchased Windows, I still have the box
set. This would also be the last version of Windows to run on my personal
systems.

As you can probably tell I had an on/off relationship with C and C++. Both of
which I never particularly liked as programming languages as you can probably
tell from the constant switching back and forth. However in 1995 I thought I
had found my perfect programming language - Java. Sun Microsystems released
Java 1.0 in 1995 - I had been playing with it a little longer via alpha and
beta releases.

So now I had Windows 95 which had a TCP/IP stack and Java which was good
for network programming and multi-threading.

1995 was when Wolf finally became WolfMUD and handled proper Telnet clients
instead of just dialup/RS-232 terminal clients.

What may be a surprise to some was that I didn't get dialup internet access
myself until December 1996. Once I had internet access I went looking for MUDs
and came across the site for CircleMUD. After what seemed like an age of pain
I had it compiled and running. I then went looking for some Usenet groups that
discussed MUDs and CircleMUD. What I found was appalling. A lot of people were
having problems compiling all sorts of MUDs, not just CircleMUD, and the
replies to requests for help were... less than helpful shall we say. It was at
that point that I decided I could do better and would release WolfMUD on the
Internet. Here is one of my early posts from Usenet thanks to Google:


  Do you want to have a go at a MUD yourself but are not a programmer? Are
  you a programmer who wants all the source code to play with? Maybe you
  have tried other MUDs that need compiling, but then can't get help or
  the replies to posts are along the lines of 'LCRYPT!!!! you fool!' ?

  Well maybe you might like to try WolfMUD?

  It's a 100% Pure Java MUD written from scratch that can be downloaded
  and just run, NO COMPILES NEEDED! There is also a GUI Based World
  Builder so you can create your MUD without needing to be a programmer.
  Just point, click and enter your text. However for the programmers all
  source code is available for tweaking :)

  There is also the 'Book Of WolfMUD' available for online viewing or
  downloading in PDF, Postscript or Plain Text formats. It is intended to
  be the definitive guide to WolfMUD and includes information on
  installation, setup, configuration, compiling (If you want to) and of
  course the tutorial on using the GUI based World Builder.

  Currently the Server is only a 296k download and the builder 126k so you
  won't waste a lot of time downloading everything if you are just curious
  and want to take a quick look at WolfMUD.

  Everything can be found at http://www.wolfmud.org

  Power to the Newbie and source code for the programmers!

  Regards,
  Andrew 'Diddymus' Rolfe


I remember one nice reply from a well known, seasoned MUD developer and player
being along the lines of "Oh god Diddymus, what hast thou wrought!?".

Over the next few years WolfMUD slowly developed and I had it running on a lot
of different architectures and operating systems: Windows 95/98/NT/2K/ME,
OS/390, OS/400, AIX, Sun Solaris 7, OS/2 Warp and Linux.

As a proof of concept there was also a version of WolfMUD for Java micro
edition running on a Palm Pilot where other Palm Pilots could connect via
infra-red and play.

In mid 1997 I switched from Windows 95 to Red Hat Linux - RedHat 4.2 which was
where most of the WolfMUD development was done. At the time I also switched to
Vim as my main editor of choice.

At this time I didn't really comprehend free software or open source and knew
little about it. I used Linux for practical reasons: I had very little money
and I was exasperated with Windows.

One of the most important platforms for WolfMUD during 1999 was IBM's AS/400.
Due to this platform WolfMUD's progress was pushed a lot harder and faster
than before. The reason for this was that I was asked to write an article[7]
about WolfMUD running on the AS/400 for News400 - a well respected magazine
for AS/400 professionals at the time. Java on the AS/400 was high profile as
IBM had been putting a lot of effort into their JVMs as a way of bringing
their different platforms together. Anyway, WolfMUD was not quite ready for
the public. With a lot of effort, and some JVM fixes from the IBM labs, I
managed to release WolfMUD version Alpha 3 on 11th June 1999 to coincide with
the article being published.

A short time later I had WolfMUD running on an IBM S/390 mainframe and an
RS/6000 running AIX.

I've always thought the biggest mistake I made was basing WolfMUD's license on
something akin to CircleMUD's. However writing this now I realise I did the
best I could at the time. In hindsight maybe I should have relicensed it at
some point?

It would be another two years before I registered the domain wolfmud.org which
was done on the 16th December 2000. By coincidence it was two years later to
the day on 16th December 2000 I switched to Debian - at the time Debian 2.2
aka 'Potato'. I still use Debian to this day on all my machines.

At the end of 2002 I lost my job and had all of my toys taken away from me. At
the same time Java started taking a turn for the worse. It became large and
unwieldy with many, many extensions - what could have been simple now required
XML, Jars, WARs, EJBs and a slew of other stuff including generics. Java was
nothing like the language I had become enamoured with in 1995[8].

In 2003 I got a new Laptop to replace an ageing Toshiba Satellite Pro I was
using. I decided to get something different. After a lot of deliberation I
went for a Apple iBook G3. To this day the iBook has never run Mac OS - the
first thing I did was boot it using a Debian PowerPC CD :) I wasn't interested
in it for it's software or operating system, I wanted a change of architecture
and went for PowerPC. Later that year the iBook G3 was discontinued, and later
still Apple switched to Intel processors *sigh*. I did however have access to
a Mac mini PowerPC G4 running Mac OS X through work although that wouldn't be
until 2005.

The last release of the Java version of WolfMUD was 25th April 2004.

In 2005 WolfMUD was mentioned in an O'Reilly Book[9]:


  Killer Game Programming in Java
  By Andrew Davison
  Publisher: O'Reilly Media
  Released: May 2005
  Print ISBN: 978-0-596-00730-0 | ISBN 10: 0-596-00730-2
  Ebook ISBN: 978-0-596-10494-8 | ISBN 10: 0-596-10494-4

  From page 903:

 "Sites with Java source code, but not Java 3D, are:

  WolfMUD (http://www.wolfmud.org/)
  Supports multiplayer, networked adventure games, including a GUI-based world
  builder consisting of zones with objects. Unlike a large number of MUD
  development sites, this one is actively supported and even has good online
  documentation."


From 2004 through to 2010 WolfMUD entered it's wilderness years. There were
still a lot of people using it and I helped them with problems. I also had
people email me to chat about WolfMUD or mudding or retro stuff. During this
time I tried to continue with the Java version several times but it never
amounted to much and I really didn't like writing Java code any more.

I did contemplate a Perl version at one point.

At the end of 2009 I became aware of a new programming language called Go. Two
of it's designers were Rob Pike - Plan 9, a successor to Unix ideas - and Ken
Thompson - wrote original version of Unix, Plan 9, Geek Hero. So I took a
look. Unfortunately due to other commitments nothing further happened, but I
did keep an eye on the project.

With my work and play being all Linux I was starting to come across more ARM
processors. With the release of the Raspberry Pi in February 2012 I gained an
ARM development system. At around the same time I took another look at Go.

Once again I fell in love with a programming language. It was simple yet
powerful. It had new ideas on concurrency and objects. It was multi-platform
which included Linux on ARM.

I needed a project I could work on while learning yet another language ;)

On Sunday 6th May 2012, after many years dormant, a WolfMUD rewrite in Go was
announced[10]. Currently I have a very basic WolfMUD running on several
platforms: Linux on 32bit & 64bit Intel and 32bit ARM, Windows 32bit and
64bit.

Almost a year and a half later and I'm still having fun with Go.

30 years later and once again I am enjoying working on WolfMUD.

This time WolfMUD is licensed under a BSD 2-Clause free software/open source
license ;)

If anyone has any more information, questions, old posts or stories they would
like to share about WolfMUD - or MirrorWorld! - then I would love to hear from
you: diddymus@wolfmud.org

--
Diddymus


  [1] Steve Jackson & Ian Livingstone, The Warlock of Firetop Mountain,
      Puffin Books 1982, ISBN 0-14-031538-1

  [2] Jenny Tyler & Les Howarth, Write Your Own Adventure Programs,
      Usborne Publishing 1983, ISBN 0-86020-741-2

  [3] John Ferguson & Tony Shaw, Assembly Language Programming On The BBC
      Micro, Addison-Wesley 1983, ISBN 0-20114-239-2

  [4] Andrew Bray, Adrian Dickens & Mark Holmes, The Advanced User Guide For
      The BBC Micro, Unknown 1983, ISBN 0-94682-700-1

  [5] Baddeley Associates, Econet Advanced User Guide, Acorn Computers Limited
      1983 [Some of this may be incorrect?]

  [6] A cleaner claims his broom has lasted years with only a dozen new
      handles and a dozen new heads. This PC was like that with all of the
      upgrades it received over the years.

  [7] I have a dead tree copy of the original article and need to type it up
      still.

  [8] I guess the last fun version of Java was 1.4

  [9] Killer Game Programming in Java:
      http://shop.oreilly.com/product/9780596007300.do

 [10] Go rewrite announcement: announcement.html


                                                            Up to Main Index