(This is the "Dungeon Designs" column from the June 1988 issue of the Eamon Adventurer's Guild newsletter. Copyright 1988 Eamon Adventurer's Guild, 7625 Hawkhaven Dr., Clemmons, NC 27012-9408. You may reproduce this freely as long as this credit remains attached to the article.) Designer's Den by Tom Zuchowski One important aspect of good dungeon design is sometimes overlooked by the author. This is the job of making the player's task of mapping the dungeon interesting and straightforward, rather than an irritating chore. The ease or difficulty of mapping will affect the player's enjoyment, and the rating that the dungeon receives will gain or suffer as a result. I am not suggesting that the author shouldn't put mazes or confusing passages in the dungeon; that is an important part of adventuring. What I am talking about is the room description that gives lots of detail and color, but doesn't give the room's correct name nor list the available exits. Let me give you a fictional example of just what I am talking about. Imagine that the player has just entered a room in a dungeon, and gets the following description: YOU HAVE JUST ENTERED A LARGE, CATHEDRAL-LIKE ROOM. THE CEILING VAULTS HIGH OVERHEAD. A COUCH IS SET AT ONE END ON A HIGH DAIS, ALONGSIDE AN ALTAR-LIKE CABINET OK, so the player draws this room on their map, and labels it 'Cathedral Room'. But then, when they reenter the room later on, they find the the room's name is VIP HALL or QUEEN'S CHAMBER or something similar that has nothing whatever to do with the room's description! And then they have to make a mess of their map, scratching out, or erasing, or just trying to remember which room is which. There is a second problem with the above description: it doesn't give a clue what the exits from the room are. This is a valid design strategem when the author is forcing a minor puzzle on the player, or is hiding something off in a corner of the room, and wants the player to have to search for it. But if it is a simple room, with ordinary doorways, then it is good form to list them somehow. In adventures that have a quest with a time limit imposed on the player, this kind of missing information can become quite irritating. To correct the above problems, the room description can be rewritten to something like the following: YOU HAVE JUST ENTERED THE QUEEN'S CHAMBER. A LARGE CATHEDRAL-LIKE ROOM, THE CEILING VAULTS HIGH OVERHEAD. A COUCH IS SET AT ONE END ON A HIGH DAIS, ALONGSIDE AN ALTAR-LIKE CABINET. THERE ARE DOORS NORTH AND WEST. But this rewritten description has problems of its own. There is an absolute limit of approximately 6 lines for a given description. The above 'corrected' description uses up 50-odd characters in making the necessary additions to ease mapping chores. As Eamon authors know, 6 lines is often not nearly enough to squeeze in all of a room description. One solution is to put this information somewhere besides the room description. The Eamon version 6.2 MAIN PGM addresses this by adding some programming that prints the normal exits just before the 'YOUR COMMAND?' prompt. The 6.2 code for this is as follows: 205 C = 0: PRINT "EXITS ARE ";: FOR X = 1 TO ND: IF RD%(X) > 0 AND RD%(X) < = NR THEN PRINT C $(X);", ";:C = 1 207 NEXT : IF NOT C THEN PRINT "NON-EXISTENT "; Now, our example description will look like this: YOU HAVE JUST ENTERED A LARGE, CATHEDRAL-LIKE ROOM. THE CEILING VAULTS HIGH OVERHEAD. A COUCH IS SET AT ONE END ON A HIGH DAIS, ALONGSIDE AN ALTAR-LIKE CABINET. EXITS ARE NORTH, WEST Another solution is to put the second half of room descriptions in the Effects, and them print both the Room Description and the corresponding Effect, thus getting 12 lines of text instead of the normal 6. A good example of this method can be found in #145 'Buccaneer!'. In this adventure, Pat Hurst has put the first 6 lines of each room description in the room location in the EAMON.DESC file, and also put 6 MORE lines in an Effect of the SAME number. The applicable code from his program is as follows: 130 VZ = ( INT (V%(RO) / 2) = (V% (RO) /2)): IF NOT VZ THEN PRINT DK$;"READ EAMON.ROOM NAMES, R;"RO: INPUT A$: PRINT DK$: PRINT "YOU ARE ": PRINT " ";A$: PRINT 140 IF VZ THEN PRINT DK$;"READ EAMON.DESC,R";RO: INPUT A$: PRINT DK$: PRINT A$: PRINT :V%(RO) = V%(RO) + 1:EF = RO: GOSUB 60 60 PRINT DK$;"READ EAMON.DESC,R" ;EF + 200: INPUT A$: PRINT D K$: PRINT A$: PRINT 63 RETURN Examining the above, code, you can see that line 140 prints the room description, then calls the small subroutine at 60 to print the corresponding effect. This is a very simple, elegant solution to the problem of printing long descriptions. Yet another way to free up the entire 6 lines for describing the room is to print the Room Name every turn, even when the Room Description is to be printed. This can be done by deleting the code in line 130 that tests for the description flag, as follows: 130 PRINT DK$;"READ EAMON.ROOM NA MES,R";RO: INPUT A$: PRINT D K$: PRINT "YOU ARE ";A$ 140 IF INT (V%(RO) / 2) = (V%(RO) / 2) THEN PRINT DK$;"READ EAMON.DESC,R"RO: INPUT A$: PRINT DK$: PRINT A$: PRINT: V%(RO) = V%(RO) + 1 This code would give us the following example: YOU ARE IN THE QUEEN'S CHAMBER YOU HAVE JUST ENTERED A LARGE, CATHEDRAL-LIKE ROOM. THE CEILING VAULTS HIGH OVERHEAD. A COUCH IS SET AT ONE END ON A HIGH DAIS, ALONGSIDE AN ALTAR-LIKE CABINET. From here, it is a simple matter to tack the visible room exits onto the end of the room name, so that it reads like this: YOU ARE IN THE QUEEN'S CHAMBER (N/W) or: YOU ARE IN THE QUEEN'S CHAMBER (NW) I personally favor the last example, in which the room name is always printed on every turn, and the visible exits are printed without slashes on the end. This has the added bonus of allowing the author to hint that there is something special about the room by not printing the exits. Thus the alert player will think to look for hidden exits or unmarked corners. But all of the above methods are good ones. The important thing is to take some of the drudgery out of dungeon exploration. Then the player has more fun, and your adventure gets better ratings! will think to look for hidden exits or unmarked corners. But all of the above methods are good ones.