.SH Introduction .LP The AberMUD5 system has evolved over the last 4 and a half years from an experiment into editing in game to a full game writing system. Its origins lie in two places. Firstly because I was unhappy with the old AberMUD3 driver, the design of which was fundamentally flawed in that it was constrained to a design initially thought out to get around the limits of GCOS3/TSS on a Honeywell mainframe. AberMUD5 is a single server process rather than a set of co-operating user processes. .LP Leon Thrane had spent a lot of time developing the basics of a multi user game system initially on the Amiga (CIA) and then under Unix (LANCE). In many ways it was the ongoing MUD project and it should have been the game the AberMUD team produced. It got sidetracked because although crude and nasty AberMUD was there and worked, while LANCE like many carefully planned and designed projects was still being built. In essence it went the way many 'real' research projects go. .LP AberMUD steals its core concepts from LANCE. The idea of subtyping things like rooms is a LANCE concept, as are many of the properties such as soft and hard containers. The main things I left behind were the rules that LANCE enforced - that an object could not be inside itself, that it could not be both a room and an object at the same time and similar structural constraints. .LP AberMUD5 started out on an Amiga, initially as a set of IPC routines and a basic core allowing creation and editing of objects, rooms and players. Once that core was solid the game driver language was added. The driver language takes ideas from various sources. It uses a simple table driven approach for its basic structure, as this simplifies both parsing and interpretation of the game language. For speed and compactness the driver compiles the game language into a P code. Unlike Lp-MUD (which at this point I had never seen since I was away from the net for a year and a half) the P code can be decompiled back to the original source, so that the source need never be stored. .LP The first port of AberMUD5 was to SCO Xenix as part of a possible commercial sale that never occured. It took only one evening for Ronald Khoo, Eric(*) & me to get it working under Xenix although most of this had to do with Ronald's remarkable skill. .LP When I finally returned to university after a years absence I had three sets of AberMUD sources. The first of these was a fortunate backup taken before I spent a year working commercially for Horrosoft, the second the version including code I had written at Horrorsoft, and the third a commercial and somewhat different variant with a graphical interface that was used for the Elvira game. I was able to produce a limited distribution set of the second version, and also used it to start AberMUD5 running on the university computer society system. The game gained a large number of features at this point, as well as becoming much more efficient. With 8 people on a 68010 CPU and 1Mb process spaces you learn what efficient means... Until recently this version was the one distributed and was subject to a fairly annoying set of signed paper license rules. As of version 5.20 however the base set predates my work at Horrorsoft and all the other code was rewritten from a set of specifications of the 5.16 release. This has finally enabled me to release a much freer version of the game driver. .LP The current AberMUD5 (5.21.3) is now based totally on TCP/IP and the older support for named pipe communications and Amiga message queues has been dropped. It runs as a single process which for the AberMUD5 database, a fairly complex 600+ room game, is about 1.3Mb in size with everything except the user file loaded into memory. .LP .nf (*) Eric is Ronald's teddy bear .SH AberMUD: Mythology and History .LP There seem to be no end of strange claims occasionally appearing in rec.games.mud about AberMUD, that in general are far from accurate. Lets start at the beginning .IP o 5 AberMUD is not the first MUD or anything of the sort. I spent a lot of time playing a game called 'Multi User Dungeon' or 'MUD'. It was written in 1979-1981 by Roy Trubshaw and Richard Bartle, and different versions of it contained many of the ideas that a lot of people think were first invented by things like TinyMUD. It was also a game with no mindless violence. Every death was carefully plotted, every victim selected and kill planned. In fact being beaten to death was one of the easier things in MUD. It was no game for wimps either. Dying cost you all your points, and a typical player took a year to a year and half to learn the game well enough to make wizard. .IP o 5 AberMUD wasn't even that original. The game system is heavily influenced by the style of MUD. The initial database for AberMUD1 was a strange and bizarre beast being a mishmash of in-jokes and odd scenes. It actually worked suprisingly well, and many a person died at the hands of a maniac wielding such items as a .44 beetroot. More of the history later .IP o 5 Despite what many people seem to think AberMUD is named after the town where it was written. Most people know that much but they don't seem to know that .br a) It is spelt 'Aberystwyth' (which is Welsh for the mouth of the river Ystwyth). .br b) It is pronouced Aber (with a hard 'A' - like in axe) and doesn't sound like aayber. .IP o 5 What made AberMUD a success wasn't any kind of brilliance, it was the fact that the games at the time were all written in bizzare languages: MUD in a mix of BCPL and DEC10 assembler, and VaxMUD in VMS fortran. MUD was certainly a much better system and game at the time. Mostly it was luck that a guy called Vijay from the US asked for a copy, so we gave him one. Since then the world has not looked back. .IP o 5 Although these days it is written in Swansea (though still run in Aberystwyth too), its still AberMUD because in Welsh Swansea is Abertawe (the mouth of the river Tawe). In English its derived from Svenns Ei (Ei being Island), after a viking pirate who used it as a base - so there. .SP 2 .LP A full history of AberMUD and its goings on almost requires a book to describe Aberystwyth, its computing people and indeed a cast who would be regarded as too unbelivable in a fictional account. .LP I think it's worth introducing a few main players of the cast as I try and outline the history of AberMUD. .LP The man upon whom we normally blame the entire thing is Robert Ash, the computer centre systems manager who ,when we asked how we would go about writing a multiuser game on the Honeywell, replied that it couldn't be done. To be fair he always maintains that he meant it couldn't be done in the spare time we had, and I guess he was right since I failed the physics accessory course at Aberystwyth. Anyway, as anyone who has ever kept a pet 'real programmer' will tell you, the last thing you tell a real programmer is that "it can't be done". So we did it. .LP Throughout the history of AberMUD at Aberystwyth Rob was a great help. There are very few system managers who not only didn't mind games on their system so long as it didn't stop real work, but who were actually prepared to sit down with someone and explain the innards of turning screen paging off with a DRL (system call) for a game. .LP Having been told it wasn't possible the next cast member - Leon Thrane (pronounce that with a 'th' sound and he'll sulk)- got busy. Leon had an Amiga 1000 and thus the capability to develop on a sensible machine of his own. He also knew C, while the rest of could muster Z80, 6502, a little 68000, 8085 and BASIC between us, and from our previous escapade of writing a bulletin board had learned B (the predecessor to C) by examples. Leon got a few simple basics working, and we even had about ten rooms before CIA kind of petered out. We ran into too many problems - lack of access to Leon's machine , which, since the alternative was an ACT Sirius running DOS1.? and Lattice C version 1.12, was a major problem. Later on we also lost most access to Leon when he acquired a girlfriend. .LP Leon had also however figured out the basics of socket programming on the computer science vax machine. As this was vanilla 4.2BSD it also involved crashing the vax a few times in the process. .LP We had already written a chat system for the Honeywell using shared files - the only IPC for GCOS3/TSS was in batch not timesharing! and I got bored. After an hour or two I had the ability to walk between channels of the chat system (which already had descriptions for channels). By 6am that morning AberMUD was born. It took a few weeks before it grew into anything serious but rapidly caught on. Within a couple of months it was out of control and had to be split from the bulletin board/chat system because it was too large. .LP This unfortunately messed up a lot of Leon's future work, because it diverted all the other work away from LANCE, his very carefully designed system, which had it been finished would have been one amazing game. .LP As AberMUD progressed and grew two people contributed a lot of bits too it. Jim Finnis (White the 159IQ MegaCreator) contributed a large collection of very very silly areas - Charlie & The Chocolate Factory, Milton Keynes, and above all a pair of extremely unpleasant mazes. He also added some pieces to the code, and invented the emote command. Jim is still around occasionally and before he complains I probably ought to point out that the 159IQ Megacreator was our title and part of a joke, rather than his, and that he in fact is a small hairy and fairly quiet person who can be bribed with good whiskey. Don't believe anything he says about me - it might be true. .LP After the first six rooms - including the infamous AberMUD1 warning notice 'Anyone going west from here will explode' (well everyone has to try it once don't they) - I asked a very loud 1st year by the name of Richard Acott aka 'the Moog' to design some rooms. He added Doiley Woods of all things, and after I added combat to the system everyone was busy chopping Evil Edna up. The Moog added several other areas to AberMUD1, although almost nothing of his survived into AberMUD2. He is also still very occasionally around, although sadly he has passed on into the real world, and is but a shadow of the Aberystwyth folklore he created. Several things in the older AberMUD's (that alas were removed by the Americans) come from his exploits - the infamous non-stick glass, and the saga of Veryodd's (ex) door spring to mind. .LP Eventually all our creation got too much for the poor Honeywell and AberMUD could no longer be linked (it gave up and the system informed us that the memory limit had been EXCEDEED (yes thats how it was spelt - I guess the designers hadn't tested it). Size on the Honeywell was a big problem. You only had 64K of 36bit words per process, and only 256K words in memory at most per copy of timesharing. Timesharing was a very priviliged batch job, and you had to run several of them on the machine because the address space was 18bit. A few special priviledged intersegment operations existed to get around the 256K word limit, but a job could only access one segment. .LP The problem was even worse than this because the Honeywell architecture only had base-limit pairs and no page mapping such as even the PDP11 had. This meant that programs had to be entirely in memory and had to be contiguous. With a few copies of AberMUD running the game response time rapidly fell to about 30 seconds a move because of the amount of swapping involved, and the way the Honeywell penalized awkward large jobs in its scheduling. .LP Thus when we finally hit our 64Kword limit I decided to tidy up the code, make it more efficient and write a 'serious' database. The result of all of that became AberMUD2, and when we got access to some nice new sun 3/50 workstations and a new fast compsci machine I spent a week or two porting and then tidying the code for Unix. The Unix version was about ten times as fast and very messy. Mostly because I didn't know C well(only B), and because the B to C conversion was mostly done with vi macros. In fact AberMUD today uses '**' not '*' to terminate things like converse mode because I missed a change. (In B * is like \\ in C - thus ** means a single *). .LP By now we had JD helping with the programming and ideas, and he wrote several useful widgets for the Honeywell version, but wasn't able to do much for the Unix release because as a Physicist he had no access to the Unix machines. JD like most AberMUD writers is still on the net, currently as an unemployed Unix administrator. JD is also worth a lot of description, but he'd only act modest and hide if I did. .LP Once we moved to Unix things sort of took off. The code went to various sites - the first being UCL physics sun network and became quite popular there too. A version ran on a guest account at Southampton for a long period and was very popular (and extremely violent). Then I managed to fail my Physics accessory course and vanished for a year and a bit working for Horrorsoft on 'Personal Nightmare' and then 'Elvira', before finally returning to Swansea. .LP In the intervening period AberMUD had taken off, and various people had done unspeakable things to AberMUD (like Rich $alz ANSIfying it). I got back in time to watch the first days of TinyMUD unfold on alt.mud, and see the initial announcement for the firt test LpMUD. I'd also written the initial Amiga version of AberMUD5. .LP Back at university I was side tracked for a while writing YAMA - a sort of portable MUD writing system, but which had an almost assembler like mentatilty and a tendancy to crash if you put bugs in the database code. On the other hand it runs a 300 room game on a 1Mb 286 PC running DOS, and is very portable ( AmigaDOS, MiNT (Atari ST), Sys5 Unix, BSD Unix, Linux, DOS, Windows ). .LP After playing with YAMA for a while I got back to AberMUD5, and with the computer society now having a machine I had a host for it. It took 2 months before it would run on the machine with its 1Mb address space and other problems, but it was done. Since then AberMUD5 in its various forms has been added to by several Swansea people and has run continually on the computer society system since. .LP A few months ago the AberMUD driver was rebuilt from the old pre-Horrorsoft system, debugged and expanded giving AberMUD 5.20 and friends which are the current fairly free release.