structural analysis of exploration procedures in od&d and b/x

the dungeon exploration procedure for the 1974 edition of dungeons & dragons is given in volume 3, pages 8-10. here is a selection of passages throughout those pages to best understand how the procedure is structured; i have only removed parts related to sub-procedures unrelated to time and movement.


Movement is in segments of approximately ten minutes. Thus it takes ten minutes to move about two moves --120 feet for a fully-armored character. Two moves constitute a turn, except in flight/pursuit situations where the moves/turn will be doubled (and no mapping allowed).

Time must be taken to rest, so one turn every hour must be spent motionless, and double the rest period must be taken after a flight/pursuit takes place.

Time searching for anything (secret passages, hidden treasure, etc.), loading treasure, listening, ESP'ing [1], hiding, will be adjudged by the referee as to what portion of a turn will be used by the activity. Typically, ESP'ing will take but a quarter turn, while searching a ten foot section of wall for secret passages will require a full turn.

Melee is fast and furious. There are ten rounds of combat per turn.


Wandering Monsters: At the end of every turn the referee will roll a six-sided die to see if a "wandering monster" has been encountered. A roll of 6 indicates a wandering monster has appeared.

in my previous blog post (link), i claimed as follows:

in the original dungeons & dragons (1974), a dungeon turn was not the amount of time it took to perform an action. instead, a turn is the interval of time between wandering monster checks.

this met some backlash because a turn is used as a unit of time, as the duration of rest, as a count of how many turns before a rest takes place, etc. i'd like to explicate my argument since i didn't realize that by saying what i did, i was making an argument.

formalizing od&d (1974)

to explicate the actual procedure described in the original dungeons & dragons, i'd like to formalize the procedure using techniques from computer science and structuralist literary criticism. i will represent the procedure as a function with an input (the party of players) and an output (whether the procedure is valid). the party acts as a stream of actions, and each action has a type and a duration. for example, the rest action has a duration of 1 turn, and the ESP action has a duration of 0.25 turns. a wandering monster check is not made until 1 turn has passed, and a sequence of 6 turns is only valid if one of them was spent resting.

i shall represent the action taken by some party p as p.doSomething(), which returns an action as an output. then i shall represent the duration of an action x as x.getDuration(). finally, i shall represent the procedure to make a monster check as checkWanderingMonsters(). the output is a boolean [2] which returns true if the party has rested, and false if not.

function: od&d dungeon exploration procedure
input: party
output: rested
auxiliary: turns, duration 
set turns to 0
set rested to false
while turns < 6
  set duration to 0
  while duration < 1
  set action to party.doSomething()
  set duration to duration + action.getDuration()
  if action is a rest 
 set rested to true
10   checkWanderingMonsters()
11   set turns to turns + 1
12 end procedure 

the external while loop (3-11) encompasses six turns, or one hour. it means that we are repeating lines 4-11 until we have counted six turns. the internal while loop (5-9) encompasses one turn, and means that we are repeating lines 6-9 until we have counted one turn. notice that, as i have mentioned in the previous post, an action does not necessarily take one turn. the referee judges how long an action takes, and then whether 10 minutes have passed. once those ten minutes have passed, the referee checks for wandering monsters.

this is why i claim that the function of the turn for od&d is to designate the interval of time between monster checks: there is no other consistent usage of a turn's duration. even if some actions take up the full duration of a turn, they are described relative to the duration of a turn. the structure of the turn itself leads up to the ultimate monster check at the end of the interval.

there is also the rule that at least one turn each hour must be spent resting. there are no consequences if this condition is not met; rather, if this condition is not met, then the game is not being played correctly. i have thus represented this condition as the output of the procedure, which iterates over six turns. i claim that the definition of a turn, its primary function, is not to count how many turns have passed for the party to rest. even if we redefine this so it's not circular, saying instead "how much time has passed for the party to rest", the division of the hour into six segments and saying it takes one segment to rest are both arbitrary decisions. of course, so is the designation of a turn as taking 10 minutes, but the definition of a turn as the interval between checks is both precise and non-circular.

i shall compare this procedure with the one described in old school essentials, a retroclone of the 1981 b/x edition of dungeons & dragons. it's worth repeating again that for od&d, the procedure of an individual turn is given in lines 5-11.

formalizing b/x (1981)

old school essentials already offers a clear and succinct summary of turn procedure. how handy!

1. Wandering monsters: The referee makes checks as applicable.

2. Actions: The party decides what action to take (e.g. moving, searching, listening, entering rooms).

3. Description: The referee describes what happens. If monsters are encountered, follow the procedure described in Encounters, p114.

4. End of turn: The referee updates time records, with special attention to light sources, spell durations, and the party's need to rest.

unlike in od&d where a rest must be taken each hour to play the game correctly, b/x instead incentivizes one rest per hour by giving a consequence if this condition is not met. i will still write the dungeon procedure as an iteration over six turns, but it's worth keeping this in mind.

more importantly, b/x prescribes checking for wandering monsters "once every two turns in the dungeon." as i have said in the previous post, it looks as though the author of b/x wanted to redefine the turn so that there is one move per turn, while retaining there being a monster check every two moves. even more interesting, though, is that actions are taken collectively by the party and only one action is taken per turn. this means that a turn in b/x can be defined precisely as the time it takes for one action to be completed by the party.

bearing this in mind, we can formally (if not quite succinctly) define the dungeon exploration procedure found in b/x as follows:

function: b/x dungeon exploration procedure
input: party
output: rested
auxiliary: turns, turn1, turn2
set turns to 0
set rested to false
while turns < 6
4   set turn1 to party.doSomething()
5   set turn2 to party.doSomething()
6   if turn1 or turn2 is a rest
7   set rested to true
8   checkWanderingMonsters()
9   set turns to turns + 2
10 end procedure

you can see how in b/x, one turn is the duration of one action taken by the party. this is why i claim that there is no abstraction, or nearly as much abstraction, in od&d compared to b/x: the latter relies on your suspension of disbelief that you can let just about any action be one turn, or not at all. meanwhile the former asks you to keep time constraints pretty literal: the goal is not extreme timekeeping, but to use discretion to decide when 10 minutes have finally passed in the game. and why is this important?

[1] ESP is a spell that allows the magic-user to detect thoughts nearby.

[2] a boolean is a binary value that is either true or false, or 1 or 0.


Popular posts from this blog

Switching to New URL!!!

David Graeber's Debt: An Informal Review

Before and Beyond D&D Reaction Rolls