;***************************************************************************** ; Quest Version 3.0 ; ; Author: Roger Plowman ; ; RSTS/E version: April 17, 1979 (Written in Basic-Plus) ; CP/M Version: August 1, 1983 (Written in S-Basic) ; MS-DOS Version: November 17, 1988 (Written in ADVSYS) ; ; This adventure is a rewrite of QUEST as found in both the RSTS/E and CP/M ; operating systems. Unfortunately the CP/M version source code ; was tragically lost to hard disk formatitus with complications of ; non-backupitis. This version tries to follow the CP/M rather than RSTS/E ; version, but will undoubtedly be very different. ; ; Fortunately for the programmer's sanity the RSTS/E source code was saved, ; along with the CP/M design notes. Only the CP/M program code and source ; (text) data were lost. ;***************************************************************************** ;***************************************************************************** ; This version of QUEST is intended both as a fun game and a tool to illustrate ; how to write games with ADVSYS. As such it is heavily commented, and comes ; with a complete description in exhaustive detail. I recommend that you play ; the game BEFORE reading the QUEST technical manual, otherwise you'll spoil ; your enjoyment of what really is a very nice game (even if I do say so ; myself!). ;***************************************************************************** (adventure quest 1) ; Name & Version of game ;***************************************************************************** ;------------------------------------------------------------------------------ ; Properties are fairly generic, these are the building blocks for objects and ; super-objects. You should be able to include this file with all adventures ; you write with little or no modification. ;------------------------------------------------------------------------------ @quest.prp ;------------------------------------------------------------------------------ ; Functions are also generic, and should be able to be included with all your ; programs. Functions for example include connect, connect-all, disconnect, ; etc. ;------------------------------------------------------------------------------ @quest.fnc ;------------------------------------------------------------------------------ ; Class definitions are also fairly generic, and should be able to be included ; with all your programs. ;------------------------------------------------------------------------------ @quest.def ;------------------------------------------------------------------------------ ; The action script is also pretty generic, although QUEST's is oriented toward ; the fantasy genre. Minimal rewriting may be necessary, especially if you are ; writing an X-rated script, where violence is (hopefully) non-existant. ; ; The script file contains action definitions. ;------------------------------------------------------------------------------ @quest.sc ;------------------------------------------------------------------------------ ; Up to this point we've been dealing with programming infra-structure, those ; definitions and functions that are necessary to a wide range of "text ; adventure" style games. All the modules which follow are Quest specific, and ; will need to be rewritten for every game you write. They define the three ; major parts of any story, SETS, PROPS, and ACTORS. The PLOT is also set up ; here. ;----------------------------------------------------------------------------- ;----------------------------------------------------------------------------- ; While QUEST.SCR holds the (generic) action script, QUEST.HLD holds the ; specific handlers that give QUEST (or whatever game you write) its own unique ; plot twists. In QUEST these include battery life, monster actions, the ; effects of various timed events, and so on. While it must be written from ; scratch, the handlers require very little actual code. ;----------------------------------------------------------------------------- @quest.hld ;---------------------------------------------------------------------------- ; Next we define the actors in your story. These include the adventurer (the ; player's character in the story), monsters which attack, and helpful cameo ; appearance actors who appear briefly, never to be seen again. ; ; Generally the adventurer actor need not be rewritten for different stories, ; although, again, X-rated scripts might require significant re-writing, due ; to the unique requirements of that genre. ;----------------------------------------------------------------------------- @quest.act ;----------------------------------------------------------------------------- ; Objects are those things the player can see, manipulate, and interact with. ; Most will be available to be taken, although others will be permanently ; moored in place. Still others might require diligent efforts to be obtained ; by the adventurer. To be effective, you should NEVER reuse objects between ; different programs (although CLASSES of objects are another matter!) ;----------------------------------------------------------------------------- @quest.obj ;----------------------------------------------------------------------------- ; Doors in QUEST are actually gates, in the magical sense, a single door is ; actually two objects, existing in two locations. Often door descriptions ; are part of the long description of the room where they're found, rather than ; having descriptions of their own. ; ; While ALL doors are magical gates, they need not appear to be. The ; blockhouse door is a good example. As far as the adventurer is concerned, ; it's just a normal door. It can be locked, unlocked, opened, closed, etc. ; The two sides of the portal never change locations. But other doors might ; be different, for example, a door which appears randomly and leads to ; different places at different times... or a door that likes to eat people... ; The possibilities are endless. As with objects, you should never try to ; re-use doors. ;----------------------------------------------------------------------------- @quest.dor ;----------------------------------------------------------------------------- ; Finally, after all the "things" have been fabricated, it's time to start on ; the sets--or "rooms". In QUEST I decided to have dungeon levels, as in the ; traditional Dungeons and Dragons role-playing game. It allows me to seperate ; the rooms rather neatly into groups. ; ; In your own games you might decide to separate your "dungeon" into sections ; rather than levels. For example, in Adventure the whole "Beanstalk" section ; might be placed in a separate file for convenience. ; ; Or, if your adventure doesn't have many rooms (as in an X-rated script), you ; might not bother to seperate your rooms into sections, since you might only ; be dealing with 1! ; ; As with objects and doors, never try to re-use room descriptions. Rooms ; are very recognizable, you wouldn't BELIEVE how quickly a player can spot ; a re-used room--especially if it was important in another adventure. ;----------------------------------------------------------------------------- @quest.l0 @quest.l1 @quest.l2 ; End of Main Module