Wednesday, January 23, 2019

Game 35: DND revisited

This entry replaces an earlier one. Short version – my first attempt failed because the map display was mangled and useless. Then I figured out how to fix it. The original post is here.

As mentioned, before, DND-likes are an early sub-genre of CRPGs, which started with dnd (or perhaps pedit5) on the PLATO network, and culminated with Daniel Lawrence’s Telengard’s commercial release in 1982.

Lawrence’s mainframe branch of DND appears to be an important missing link, a predecessor to Telengard, and also to multiple other DND-likes by other authors. Lawrence denied having ever played dnd on PLATO, while dnd’s maintainer Dirk Pellett claims he outright plagiarized it.

The earliest version I can find is a VAX/VMS port of DND, which I downloaded here. Getting it to work was no simple task; I had to emulate a VAX machine with the emulator SIMH, figure out how to install OpenVMS, and then mount the disk images using little but a sparse and partly incorrect readme file and some rusty knowledge of Unix.

And even then, it didn’t work right with Windows’ console window. The ingame display was horribly mangled.

How it looked.

How it SHOULD have looked

Turns out VAX and Windows have different ideas about how line feeds should work. Windows throws in a carriage return for free, but DND is counting on VAX to not do that. Luckily, I discovered a replacement console called Cmder, which works fine.

Loading up, a title screen and main menu.

Character creation and dungeon selection

There are already three things on that screen that differentiate DND from pedit5 and dnd.

First, all six D&D attributes are present, including Charisma.

Second, you can select classes. Dnd and pedit5 both lacked classes, instead granting your character access to both mage and cleric spells, with separate spell points for each school. Here, the cleric casts the cleric spells, and the mage casts the mage spells. The fighter can’t cast spells, but unlike pedit5 and dnd can actually fight decently.

Third, you can select one of three dungeons to explore.

Entering TELENGARD. The map output looks OK!

Checking out the ingame helpfile.

Let’s see what “Utter a pray for escape” does.

Yeah, it’s that kind of game.

Traveling north, I encounter my first monster. Combat options are awfully familiar looking.

Pressing an invalid key produces a likewise awfully familiar message.

Casting a spell

And here’s our first major difference from pedit5 and dnd. Combat is no longer resolved instantly once you take an action, but plays out round by round and lets you take a new action on every turn.

Sleep works much like in pedit5, but sometimes the monster wakes up before you can kill it.

Checking my vital stats

HP half gone, spells depleted, time to head back to the surface. Good thing I’m not far from the exit!

A kobold ambushed me, but I survived even though I’m out of spells. Time to leave.

Like pedit5, gold is converted to XP on a successful run, and accounts for most of it.

Gear is just lying around, but it’s discarded if you are carrying something better.

I quickly found that magicians tend not to fare well in straight melee combat.

My next character found a chest soon, which are much more generous than random piles of silver.

That’s already enough for a level up!

There seems to be a gold->experience rate penalty when your character level is overleveled. At first, each gold was worth an XP. At level 2, I get half my XP in gold. Gold gathered in deeper levels is not penalized in this manner.

That “spells” list shows the four tiers of mage spells, from which I can cast four level 1 spells and one level 2 spell. The level 1 spell sleep is still the most useful spell at this point, but it doesn’t work on undead.

One level up later, I gained access to level 3 spells including “continual light.” I tried it out:

This showed me there was a thing to the north (it turned out to be a kobold, but it could have been treasure too), and a secret door to the east.

Entering the door turned out to be a mistake.

Restarting yet again, I wandered around familiar territory, dealt with enemies with magic, retreated whenever empty, and leveled up mostly through treasure chests, which were still worth it even with the XP penalty. Sleep remained very reliable, and Phantasmal forces worked surprisingly well against the undead.

At this point, I had access to level 3 spells, and I experimented with all 18 spells available. These were my findings.

Level 1
  • Magic missle – Yes, that’s how it’s spelled. 1-6 damage in combat.
  • Charm – Usually incapacitates non-undead monsters. You can try to kill them, but they break the charm about half the time if you try.
  • Shield – Get hit less often. Cast it any time, but it doesn’t last long.
  • Sleep – Seems to be the same as charm, except monsters don’t usually break it.
  • Protection from evil – Seems to be the same as Shield.
  • Light – Reveals things and secret doors on the map, but doesn’t last long.
Level 2
  • Phantasmal forces – Usually kills.
  • Web – Usually incapacitates. I have never seen a monster break the web.
  • Lightning bolt – Better damage than magic missle.
  • Strength – Do more damage when fighting. Doesn’t last long.
  • Levitate – Prevent falling in pits. Lasts a while.
  • Invisibility – Better odds of sneaking past monsters. Lasts a while.
Level 3
  • Fireball – Better damage than lightning bolt.
  • Confuse – Monster damages itself for one round.
  • Pass-wall – Move through a wall. Fails if it would take you out of bounds.
  • Hold monster – Incapacitates about half the time. I have never seen a monster break hold.
  • Fear – No idea, but it’s a lasting effect, and lasts a pretty long time.
  • Continual light – Light, but for a much longer duration.

I did some exploring, and found multiple types of special dungeon features.

Fountains have random effects if you drink from them:
  • Nothing
  • Restore HP
  • Damage HP
  • Gain XP
  • Lose XP
  • Stat increase
  • Stat decrease
The color of the fountain is random, but doesn’t seem to make any difference.

Holy Altars can grant boons if you worship and donate generously, but may invoke divine wrath if you ignore them or donate too little.

Sometimes there’s an option to “Desicrate,” but I don’t know what makes that option available or what it does, exactly.

A jewel-and-rune-covered throne, with a sundry of options, but none of them did anything for me.

Sometimes the game just outputs random messages.

Teleporters will zap you somewhere else in the dungeon, possibly even to another floor, which got me killed me more than once, and compelled me to start making maps. The destination of each teleporter seems to be fixed, but there also doesn’t seem to be any clear pattern to where the teleporters take you.

Pits, which you will sometimes just fall into, and sometimes will have the option to climb down in or walk around. They always lead one dungeon level down, to the same X,Y coordinates as the pit.

Elevators take you up a level, whether you want to or not.

The Excelsior Transporter! Pretty much the smoking gun in debunking Lawrence’s dubious claims that he never played dnd.

One difference from dnd is that every dungeon level’s got an Excelsior Transporter, and it conveniently takes you to ET’s on other floors. In dnd, only the first floor had one, it dropped you off on a random square of your selected floor, and you had to climb your way back up. It’s a good thing you don’t have to do that here, because DND’s dungeon levels are much larger.

A small door with colored lights lets you enter any combination of two buttons, for a possible 16 combinations. I tried all 16 combinations, and all that happened is that I got zapped for a bit of damage each time.

A square in the lower-left corner of the map proved to be “solid rock,” but in practice was a teleporter.

With level 1 mostly mapped out, and more than half an hour of earnest gametime logged for this character, I exited the dungeon, and backed up my save file. This game features permadeath, and although I’m sticking with my rules against savescum abuse, I’m not going to risk losing more than a half hour of progress with this game.

Level 4 spells were available at this point, which I tested.
  • Teleport – Teleport somewhere, seemingly at random. This got me stranded in unfamiliar territory and killed, so it left a sour taste in my mouth even though I had just backed up my save.
  • Power word kill – Kills the enemy. I haven’t seen it fail.
  • Prismatic wall – Sometimes makes the monster get bored and leave, sometimes does nothing.
  • Time stop – No monster encounters for a few steps
  • Wall of fire – Sometimes kills the monster, sometimes makes it get bored and leave, sometimes does nothing. Odds of each event seem equal.
  • Summon demon –Usually the demon kills the monster and then you unsummon it. Sometimes the unsummoning fails, and then you have to fight the demon. Sometimes the demon is taking a bath and nothing happens.

My impressions so far are pretty favorable!  It’s clear that Lawrence had played dnd, but I wouldn’t go as far to call it wholesale plagiarism. Even from just exploring the first floor, combat appears to be a lot more interesting, there are a ton of random events and special encounters that dnd lacks, and the magic system is much better developed with spells that do more things than “do damage” and “kill.” Some specific elements are stolen, for sure. I’m certain it’s no accident that both games have an Excelsior Transporter, or that your quest is to retrieve an orb. But the general dungeon crawling template isn’t something dnd’s authors can claim exclusive ownership of, and DND has quite a few novel ideas in it that hadn’t been seen before in any prior CRPG.

My game plan is to try delving a bit deeper, in search of loot and XP. I’m at character level 5, so perhaps I can survive a trip down to dungeon level 5, which will be easy to reach thanks to the Excelsior Transporter, and easy to return from provided I can avoid the random teleporters. I don’t see much point in trying to map the entire 20x20 dungeon floors, but I will map as I go, mainly so that I have a chance of finding my way back in case of random teleportation.

My mostly complete map of level 1:


  1. Nice work. I was trying to get this to run on a PDP-10 with Tops-20, but converting the files into a tape format was too much work without knowing that they even work on that machine.

  2. Useful site. Where did you manage to get hold of the data files from (the only files I could find on the site you referenced were source code)?

    1. Looks like you can still download the VAX/VMS version here:

  3. This comment has been removed by the author.

    1. Yesterday, I've posted a comment asking for help trying to emulate this game. I've never touched VMS and the usual operations I can do on a CMD is MS-DOS releated. But here I'm today: after spending the day reading old DEC manuals and sparse information on many sources, and after downloading an old version of VMS (4.6), somehow I've learned how this things works at the point where I can now easily open the VAX simulator, boot on the system driver and mount those DND disks, even play the game. Now, my only question is regarding the line feed/carriage return error: how did you fixed that? On Cmder I didn't find the option to take this.

    2. Sorry, I wish I knew! This didn't work for CRPG Addict or Nathan P. Mahney either, and now it's no longer working for me. I did find some notes on ConEmu about enabling/disabling Line Feed mode through ANSI escape codes, but I can't figure out how to do it, or if this is even the solution.

      There are two other things that worked for me before I discovered Cmder and might work for you too. One, get the Ubuntu app for Windows 10, and set up SIMH there. Or if you have access to a MacBook, try using that. The MacBook is actually the first way that I ever got DND working completely correctly, and it's what tipped me off that the issue might be linefeed related. With either approach, you can use the same VAX images that you use in Windows, but you'll need a VAX simulator for the new host environment.

    3. Hi, thanks for the reply =)

      Well, I guess I need to keep surfing around until I magically find something xD those ANSI sequences do seem to be what we need, but I don't know if I get it: they are for the terminal of the cmder (xterm, windows, etc.) or for the VMS terminal? I think it's the former, but I tried some sequences and it didn't worked as expected. Will keep researching...

      Btw, very nice blog! I once have read about that Wizardry fix you did, and those Black Onyx entries are very special to me (I read about them on CRPG Addict when I was in college, even started playing on M88).

      If I get a solution for this "carriage mystery", I'll post here first!

    4. Edit: I misspelled somethings since it's almost 3 AM here xD I meant that "I've read about Black Onyx on CRPG Addict", still reading your entries now.

    5. I got it working again! I used an old version of ConEmu, rather than Cmder. v201122 was the latest that worked for me - anything newer had the line feed issue.

      Make sure auto-update isn't enabled.

      Just in case this is also version dependent on SIMH, this is the version I'm using:

    6. Oh sh*t, you shouldn't needed to do that! Thanks =D

      I did tried downloading an older version of Cmder before, but it was older than that release of ConEmu (or not old enough? xD). But I did download the older Cmder v.1.3.13 and it also don't mess with the lines! I still want to know a way to fix this in newer versions though, but until them, this is the easiest way to play DND on VAXVMS =)

    7. Two quick questions I forgot to include: is it okay to you if I post here the "step-by-step" of how one can easily run the game, along with the relevant links (including the one to the page where there is VMS 4.6)? Second, the game sometimes as something like "press ENTER to do X and LF to do Y". This LF key (linefeed?), can we "emulate" it/there is a shortcut for the termianl?

    8. 1 - Absolutely!
      2 - On Windows, press Ctrl+Enter to send lf. This will be different in a POSIX environment.

    9. I'm still creating the "step-by-step" guide, but I'm now at another computer (Win7x86) to test everything and the previous carriage problem returned XD It's cool, I'll resume my investigations on the matter.


Most popular posts