NOTE: This manual was written in a graphics word processing system (Ami Pro 2.0). This text file contains most of the text in the manual, but the graphics are lost and the tables are not formated. When you register, you can get a copy of the documentation for only $5 to cover the cost of printing and shipping. See INVOICE.DOC for details --------------------------------------------------------------------- Introduction 1 A Note from the Author 1 General Information 3 Hardware Requirements 4 Shareware 5 Getting Started 6 Basic Building Blocks 6 The Graphics System 6 Setting Up Your Working Directory 7 Building Worlds 8 Save (F1) 11 Copy World (F3) 11 Select Blocks (F4) 11 Previous/Next World (F5/F6) 12 Flood Landscape (F9) 12 J)ump 12 R)esize 12 W)orld 12 World Information 13 Creating Doors 15 Creating Objects 16 Type 18 Class 18 Graphics Block 18 Description 18 Script 18 PCX File 19 Value 19 Count 19 Weight 19 Other Attributes 20 End Game 20 Text 20 Creating Characters 21 Type 21 Class 22 Graphics Blocks 22 Name 22 PCX File 22 VFL File 22 Script 23 Count 23 Treasure 23 Text 23 Statistics 23 Predefined Object Types 25 Food 25 Weapons 25 Ammunition 25 Armor 25 Shield 25 Amulets and Rings 26 Potions 26 Scrolls 26 Staffs 26 Chests 26 Keys 26 Gems 26 Books 26 Gold Sack 27 Torches and Lanterns 27 Rope and Hooks 27 Mirrors 27 Signs 27 Vehicles 27 Predefined Character Types 28 Regular 28 Civilian 28 Hostile 28 Merchant 28 Healer 29 Teller 29 Questor 29 Prisoner 29 Beggar 29 Trainer 29 Guard 30 Predefined World Types 31 Outdoors 31 Big City, Small Town 31 Dungeon 31 Hideout 31 Houses and Castles 32 Arena 32 End Game 32 The Magic System 33 Personal Magic 33 External Magic (Spells) 34 D C G A M E S Version 3.0 WORLD BUILDER USER'S GUIDE March 1993 (c) DC Software, 1992 6705 Laramie Drive Plano TX 75023 (214)-517-0428 Introduction A Note from the Author Version 3.0 of DCGAMES brings to the adventure/role playing game author a degree of flexibility and power never before attempted. The following are the major new features: - New script language enables you to change just about every aspect of the game. You have complete control over every character, object and world in the game. Almost every single aspect of game play is controlled from a script that you can modify to fit any requirement you can think of. - You can modify or create brand new character, object or world types and classes, with complete control over their behavior and characteristics. - Support for the .PCX graphics format means you can display full graphics images during game play to complement the game. For example, when you 'LOOK' at an object or character, you may not just get a textual description, but a full graphics image. - If you have a SoundBlastertm or compatible card, you can use full sound (both recorded voice playback and full instrument music) as well as text-to-speech translation. Besides having full control from the script language, every character can have his/her own pre-recorded speech file for interactive conversations. - You can now run DOS programs from within a script. The main benefit of the new system is that you have complete control over the game. You no longer have to wait for me to add a new feature, you can do it yourself! Or, if you choose to wait, you'll have to wait a lot less, since the new feature you have in mind can most likely be implemented using scripts. I am already working on version 3.1 which will add some new features that will make the system even more flexible: - Support for voice and music through the PC speaker, so you don't have to have a SoundBlaster card. - Support for virtual memory (expanded and extended, as well as disk based), to allow you to create larger and more diverse graphics blocks and worlds. - File I/O to allow you to read and write files from within a script. - Light and darkness (as in night and day as well as in places where you need a light source to see in, like caves). - The ability to use a different landscaping blocks file for different types of worlds. - Animation, where each character moves according to his/her own schedule, even when you are not around. - True container objects which can contain other objects themselves. - Add your own ideas to the list! Many of the ideas above were sent in by users that are actively creating adventures and role-playing games. The one rule that you must always remember is that there are no rules. Feel free to try something new. Don't stick to the current definition of adventure or role playing game, and by all means, if you can't figure out how to do something, no matter how strange, give me a call. The worst thing that can happen is that I'll tell you it can't be done, the best thing is that it might be easy, and if it isn't, I might add your idea to my list and maybe one day it WILL be easy! I want to thank all of you who have sent in your registration (HINT!) and specially those that took the time to send in their ideas, constructive criticism and just plain kudos. You are the reason I keep working into the wee hours of the morning. I hope you enjoy creating adventure and role-playing games, and by all means send me a copy of any games you write! Sincerely, David A. Hernandez DBA, DC Software General Information The DC Software Graphics Adventure Game Builder is a tool that will allow you to create graphics based adventure and role playing games with a minimum effort and no programming knowledge. The basic premise in DCGAMES is that you are an artist and you have a story to tell. You want to create a world in which your story takes place, and have all the pieces of a complex puzzle that the game player must unravel. Catering to both the casual user as well as the serious game developer, the system provides maximum flexibility by providing a complete set of world, character and object elements that you can configure and combine with ease. The serious developer can modify the predefined elements, changing the rules of the universe to fit his/her particular needs, and can create totally new types of worlds, characters and objects, as well as control almost every aspect of game play. Each world, character and object in your adventure can be customized in many different ways to provide that uniqueness that is the essence of your creation. There are 5 increasingly more complex ways to customize your game: You can configure each world, character and object through the extensive set of attributes that each of them has. For example, there is a big difference between a Battle-Axe, which causes 8 points of damage, has a reach of 1 square, requires 2 hands to wield and weights 15 pounds, and a Laser Gun which causes 40 points of damage, has a reach of 10 squares, requires 1 hand to wield, weights 2 pounds and an Energy-Pak to operate (as ammunition), yet these two objects are different only in their attributes, which are set when you create the object using the DCWORLD program or from a script. If you need something to work just a little bit different, you can modify the default scripts as much as you want. For example, the default scripts do not allow wizards to use weapons that weight more than 5 pounds, or need more than one hand. You could change this to allow wizards to use only edged weapons that weight less than 2 pounds. You can add new classes of an existing object, eacjh with its own peculiarities, for example, a new spell that turns your enemy into a frog, or a new type of weapon that works only against certain types of monsters. You can also extend the default scripts to add new types. You could create a new character type that is a thief; they get a better chance at detecting hidden traps, don't wear heavy armor and can usually get a better price when you bargain. Or you can create a bomb type, which will cause extensive damage to objects and characters in the area where it explodes. The ultimate customization is to create a brand new script which handles the needs of a single world, character or object. These specialized scripts are what allows you to create truly professional games. As you can see, it's probably a good idea to learn about scripts, but it is NOT indispensable, nor do you need to learn how to write scripts right away. Let's first look at each of the building blocks provided and their default attributes and behaviors, and you will see that you can probably write the 90% of the game without writing a single line of script. In fact, I strongly suggest that you put off writing any scripts until you have most of the game in place. When you've done most of the work, go back and determine which parts of the game could use some specialized handling. Hardware Requirements The adventures created can be run on any graphics device available, be it CGA, EGA, VGA or even TANDY color graphics, with up to 640x480x16 color resolution for maximum detail, or 320x200x256 color for truly outstanding graphics. And the games are always device independent! The system will run on any IBM-PC compatible computer with 384K or more of memory. A very large world, with a large number of objects and running on high resolution VGA may require 512K or even 640K, but I have yet to run into this problem. While a small adventure (like the example adventure) can be run from a 360KB diskette, you'll find that a hard disk is needed for any serious work. If you have a 3 1/2" drive (720KB or 1.44MB), or a high density 5 1/4" drive (1.2MB), it should be enough. Speed is never a problem. The program will perform quite well on an old 4.77MHz PC. Disk speed is a factor only when moving from one world to another. If you have a SoundBlaster or compatible sound card, the system supports voice (.VOC) and music (.CFM) playback, as well as the SBTalkertm text-to-speech translation. Shareware This software is distributed as shareware. The entire product is archived into a single file called DCGAMES.ZIP which should contain the following files: File Name File Description --------------- ------------------------------------------------- BUGFIX.DOC List of cumulative fixes and changes CONTEST.DOC Game building contest! INVOICE.DOC The registration form LICENSE.DOC The license agreement README.DOC Some minimal instructions and last minute details BUILDER.ZIP World Builder ZIP file DCWORLD.EXE The world builder program DCWORLD.DOC World builder documentation PLAYER.ZIP Run-time ZIP file DCPLAY.EXE The run-time program (royalty free) DCPLAY.DOC Documentation for game players GRAPHICS.ZIP Graphic blocks and fonts DCFONTS.7X5 Graphic fonts DCBLOCKS.mde Graphic landscaping blocks DCOBJECT.mde Graphic object blocks DCPEOPLE.mde Graphic character blocks DCSYSTEM.mde System graphic blocks EXAMPLE.ZIP Example adventure game SCRIPTS.ZIP Pre-defined script sources SOUNDS.ZIP Utility to create character voice files and sample sounds CONVERT.ZIP Utilities to convert old games to the new format UTILITY.ZIP Utilities to print reports or convert graphics files BLOCKS.ZIP Utilities to create new graphics blocks WORLDGEN.ZIP Utilities to generate fractal world landscapes Written by a 3rd party. It had not been updated to work with version 3.0 when this was written Getting Started Basic Building Blocks Your adventure consists of a set of worlds, characters, objects and scripts that together create a story that the game player will be a part of. The DCWORLD program is used to create your worlds and populate them with characters and objects. It also allows you to configure each of these elements by specifying values for their most important attributes, and assigning scripts to be used by each of the elements. Should you need to modify, extend or write a script, you will need to see the Script Language User's Guide, which contains a complete explanation of how to do these things. The Graphics System The DCGAMES system includes a rich set of predefined landscaping, character and object graphics for a variety of graphics modes. In general, the more colors or the higher the resolution, the more disk space is needed to hold the graphics files. You will only need to have the graphics files for the one mode that you intend to use to develop or play your games. Your adventure will be created independent of the graphics mode, so other people can play it at other resolutions by using a different set of files. With version 2.0 of DCGAMES, the space needed by these graphics files has been reduced dramatically. The following table shows the space required by the different resolutions. Colors Mode Description Mode File Size 4 320x200 CGA low resolution -CLO +40KB 2 640x200 CGA high resolution -CHI +70KB 16 320x200 MCGA low resolution -MGA +55KB 16 320x200 TANDY's low resolution -TDY +63KB 16 640x200 EGA low resolution -ELO +94KB 256 320x200 VGA low resolution -VLO +63KB 16 640x480 VGA high resolution -VHI +221KB While the higher the resolution, the more memory the program will require, the difference between running in CGA low resolution and VGA high resolution is only about 64K of RAM. Setting Up Your Working Directory Before you start, you will need to create a working directory and place the basic startup files in it as follows: C:\> mkdir mygame C:\> cd mygame C:\mygame> pkunzip a:builder.zip dcworld.exe C:\mygame> pkunzip a:player.zip dcplay.exe C:\mygame> pkunzip a:graphics.zip *.7x5 *.mde1 C:\mygame> pkunzip a:blocks.zip dcblock.exe2 C:\mygame> pkunzip a:scripts.zip C:\mygame> dir Volume in drive C is DCSOFT-114 Directory of C:\DCGAMES\TEST . 04-14-92 11:01p .. 04-14-92 11:01p DCWORLD EXE 248765 12-15-92 12:04p ! World builder DCPLAY EXE 398343 12-14-92 11:39p ! Game driver DCBLOCK EXE 97564 12-11-92 10:47p ! Graphics block builder DCFONTS 7X5 1152 02-29-92 12:01p ! Graphics font DCBLOCKS VLO 27929 11-27-92 11:30p ! VGA low resolution graphics DCOBJECT VLO 12177 11-27-92 11:28p ! " DCPEOPLE VLO 18621 11-19-91 11:21p ! " DCSYSTEM VLO 1795 10-17-92 7:18p ! " DCC EXE 209232 12-05-92 11:45p ! DCGAMES script compiler DCCTOKEN DAT 17650 11-27-92 1:56a ! token definition file BARTENDE SCR 3788 09-08-92 10:42a ! bartender characters BEGGAR SCR 712 09-08-92 10:42a ! beggar characters CASTING SCR 12364 11-27-92 1:45a ! casting spells CIVILIAN SCR 1274 09-08-92 10:42a ! civilian characters CONTROL SCR 16501 11-22-92 10:47p ! timed and control events GUARD SCR 3823 09-08-92 10:42a ! guard characters HEALER SCR 4911 09-08-92 10:42a ! healer characters HOSTILE SCR 342 11-08-92 1:48p ! hostile characters INITGAME SCR 1760 11-28-92 3:24a ! game initialization MERCHANT SCR 4016 11-08-92 3:04p ! merchant characters OBJECT SCR 32308 11-27-92 1:55a ! objects PRISONER SCR 3012 09-08-92 10:42a ! prisoner characters QUESTER SCR 4428 11-27-92 11:52p ! quester characters REGULAR SCR 1716 09-08-92 10:41a ! regular characters RESURECT SCR 1208 10-29-92 1:25p ! death & resurrection TELLER SCR 936 09-08-92 10:43a ! teller (oracle) character TRAINER SCR 5891 10-29-92 1:26p ! trainer character 25 file(s) 2345678 bytes C:\mygame> for %i in (*.scr) do dcc %i ... The last statement (for %i in..) compiles every script file (*.SCR) into a script object file (*.SCO) for use in your game. Instead of creating a brand new game, this document will use the sample game that is included with DCGAMES. Therefore, you should extract the adventure game on the directory you just created: C:\mygame> pkunzip a:\example.zip -o The -o option tells the PKUNZIP program to overwrite any file that already exists on the current directory. The example game includes copies of the script files, as well as some additional ones that handle special cases in the game. Building Worlds To start creating your game, type: C:\mygame> dcworld [-mde]3 The main world builder screen will be shown, and the first world (# 0) will automatically be created. Since a game already exists, the first world is displayed. The screen is divided into 3 areas. The text area (at the bottom) shows information on the world you are currently working on (World 000, name Medan, Horizontal (Width) 100, Vertical (Height) 76, Number of objects 15), and the current mode (Move) and drawing coordinates (25,70), all in the first line. The rest of the text area shows the commands and function keys you can use to create your world. The second area is the large window, which shows the as much of the current world as possible. When you create a new world, it's default size is 18 blocks wide by 11 blocks tall, and the entire world is covered with the first landscaping block in the graphics file, which happens to be grass. The third and last area of the screen is the column on the right hand side, which shows the current landscaping graphics block. Look at the current landscaping block in the third graphics area. Now press the + key 10 times while looking at it. As you can see, every time you press the + key, the next landscaping block is shown. Pressing the - key will show the previous landscaping block. Use the + and - keys to scroll through ALL the graphics blocks. Notice that there are blocks for trees, rocks, mountains, rivers, oceans, towns, cities, castles, walls, doors, windows, furniture, etc. The set of predefined graphics block is quite comprehensive, but using the graphics block editor you can modify the existing ones and create new ones. If you want to see all the graphics landscaping blocks at once, press the F4 key, and the following screen will be shown. You are now looking at a full page of graphics landscaping blocks. You can move the cursor around to select one of them, instead of using the + or - keys. You may use the PgDn and PgUp keys to move from one page to the other, and press Enter (or Return) to select one of the graphics blocks. The text to the right of each block indicates the density of the block. The player can walk over flat, rough and very rough terrrain with increasing difficulty. The high and very high densities require vehicles of low and high altitude (such as a flying carpet vs an airplane). Low water, rough water and deep water are used to represent areas such as rivers or lakes, coastal waters and deep oceans respectively. Again, an appropriate vehicle is required (such a small or large boat). A low altitude vehicle can fly over low and rough water, but not over deep water. A high altitude vehicle can fly anywhere. If you press the PgDn key, you will see the second page of graphics landscaping blocks: The wall density is used to indicate something over which you cannot move. When you are in a building or cave, you cannot go over the walls because there is a roof over your head. At this time, move the cursor over to the lower, left side of the screen, over the flat graphics block in the corner. Press the Enter key, and you will be returned to the main screen, with the selected graphics block showin on the right hand side of the screen. Now we are going to make some changes to the landscaping. Using the arrow keys, move the cursor to the right, over the water. Now press the Ins key. Notice that the current graphics block gets inserted at the location of the cursor. Move a couple of squares to the right again. Now press the Space key and notice that the drawing mode changed from Move to Draw on the first line of text. Now move the cursor around (in any direction, several times). When you move the cursor, the graphics block is automatically inserted into the new cursor position. Now press Ins again to go back into Move mode. Since the world is much larger than fits on the screen, you will need to move around to see other parts of it. The arrow keys can move you one square at a time, and the following key combinations will move you one page at a time: Ctrl-PgUp moves your view up one full page, Ctrl-PgDn moves the view one page down, Ctrl-LeftArrow moves the view one full page left, and Ctrl-RightArrow moves the view one page right. If you have a numeric keypad, make sure NumLock is not selected (most keyboards have a light indicating if it is or not). The keys in the keypad double as arrow keys when the NumLock is not selected (8 is up, 6 is right, 2 is down, 4 is left). To make it easier to work, the other numeric keys, which double as Home, PgDn, End and PgDn also work as arrow keys for diagonal movement. Try to move around and explore the world you are now looking at. If you press the Esc key, all changes you have made so far are discarded, and a copy of the world and it's objects is re-loaded from disk. Try it now. The following commands can be useful when creating the worlds: Save (F1) Saves the changes you have made to disk. A save is automatically done when you either exit the program or go to edit another world. If you press the Esc key, all changes you have made to the current world since the last save are discarded. Copy World (F3) Makes an exact duplicate of another world, replacing the current world. For example, if you want to have 2 houses that look the same, you can create one, then edit the other world and just duplicate the one you already created. You can then modify the copy. Again, if you have not saved, pressing Esc will discard the changes and revert to the original. Select Blocks (F4) As you have already seen, you can select landscaping blocks from the full screen, instead of using + or - to scroll through them until you find the one you want. Previous/Next World (F5/F6) Takes you to the previous or the next world respectively. Each world is numbered starting with world 0. F6 takes you to the next world, F5 to the previous one. If you press F5 when you are in world 0, or F6 when you are in the last world (highest number), you will be taken to the next world above the last one and given a chance to create it. The current world is saved to disk whenever you move to another world. Flood Landscape (F9) Fills the entire world with the current graphics block. You might want to use this command when you are creating a world where most of the landscaping is of a single type. For example, the outdoor world would usually be flooded with a graphics block representing an ocean. The continents and islands can then be manually created. J)ump Pressing the letter J will allow you to jump directly to another world by providing the world's number. R)esize Pressing the letter R will allow you to change the size of the current world without destroying your current design. If the new world is larger, you are allowed to specify if you want to center the old landscaping over the new world, or whether it should be left or right justified within the new world. If the new world is smaller, the old world is truncated, and again you can specify whether the old world should be centered on the new one (i.e. truncated on both sides) or justified (truncated on one side only). W)orld Pressing the letter W will bring up a screen in which you can see the extended information about the world, and you can modify the world's name, type and other attributes. World Information Now that you know how to paint a world, let's take a look at the first screen that allows you to modify the world's attributes. To display the screen, press the letter W. The screen should look something like this: You can use the arrow keys to move from one field to another on the screen. The field you are currently on is displayed in reverse mode. You can type in a value for any field that you can get to (some fields, like the world's number, cannot be modified). In this screen, you can set the world's name (up to 15 characters), select a type, change the world's size (but it destroys the current world; see the R)esize command on the main screen to change the size without loosing the world's landscaping or contents). For a complete list of world types and a description of the differences between them, see the section Standard World Types later in this document. The level field allows you to specify the minimum level that the playing character must have before it is allowed to enter this world. It usually applies only to special purpose worlds, such as dungeons, or places that you don't want an inexperienced character going to. The edge field is used to indicate which door (each world has 32 doors) will be taken when the player walks off the edge of the world. The edge door will usually be the same door through which you entered the world in which you are. Door 0 is the default edge door. Note that worlds of type outdoors are different in that when the player reaches the edge he/she just wraps around to the other side of the world. The world is round! The long table shows every door in the current world (in two pages), the location of the door in the world, an indication of whether the door is automatic (the player enters the door by just walking over it) or not (the player must specifically enter the door), the destination world, destination door or X, Y location in the destination world, as well as the # of the text record that will be displayed when you enter or exit the current world through the specific door, and whether the text is displayed every time or just once. Note that door 0 is located at 25, 70; it is an automatic door (Auto=Yes) and leads to a world called "your home," door 0. Since the door leads to another door, no X/Y location is given for the destination. If the door leads to a location independent of a door in the destination world, the door # would be n/a and the X/Y fields would have numbers. The last 4 columns indicate, for each door, whether a specific text record is to be displayed when the player enters or exits through the given door, and whether it is to be displayed only the first time or every time that the door is used for that purpose. On this screen, you can press Esc to throw away any changes you have made, and F10 to save the changes and return to the main screen. Creating Doors Back on the main screen, move the character to location 25, 70 (which is right where the game started). At this location, press E (for Enter), and the current world will be saved and the door over which the cursor is positioned will take you to its destination. You should see the following screen: You are looking at the world that represents the adventurer's home. Notice that landscaping blocks have been used to create walls, windows, doors, and furniture. Some of the furniture (the bed, a large table with chairs and a chest of drawers) is actually created by multiple blocks. When the adventurer is playing the game, the density of the landscaping block will tell the game driver where the adventurer can walk, and where not. Now, if you press W, you will be able to see the information on this world. You may notice that door 0 leads back to the main world (Medan), and to the same door which leads to the door we came in from. The doors in each world are independent of the doors in the other worlds, but you will normally want the doors to exist in both directions, so that pressing E (for Enter) multiple times will just take you from one world to the other again and again. Door number 0 in this world is located exactly outside the door graphics block. When the player enters the door in the main world, the party is transferred to this world and positioned over the destination door. To exit this world, the character may enter the door or may just walk of the edge of the world, which for every type of world except outdoors means that the character leaves the world through the Edge door (the last field in the second line on the world information screen. To create a door, you should move the graphics cursor to the location over which you want the door to exist, then use the O)pen command to create the door. You can also enter the information in the W)orld information screen. Press F10 to return to the main screen. You may experiment opening multiple doors in this world that lead back to the same world. For example, position the cursor somewhere in the house, and O)pen a door (say door # 1) to destination door 0 in world # 1 (the current world). Moving the cursor over the position that hold the new door will and pressing E will transfer you through that door to door 0. Pressing E over door 0 will not, however, transfer you back to door 1, instead it takes you back to the main world, since that is where that door leads to). Creating Objects Now that you know how to create a worlds and how to open doors between them, it is time to create a few objects that may be used during the game. To create an object, you use the P)ut command which takes you to the Create Object screen: If you have not created objects before, you are asked to select a graphics block to represent the object. The above screen shows the first page of the default graphics blocks for objects that are included in DCGAMES. The names by each object are the names of the graphics blocks, and indicate what the object was intended for. Note that the object type is NOT tied to the graphics block that represents it. Thus, you could create an object using the first graphics block above (a roasted turkey) and have it represent an amulet instead of food. The names are there to indicate what the graphics designer had in mind when that particular graphics block was created, not to force you to use the graph in any specific way. Once you select a graphics block you are presented with the real Create Object screen. This screen allows you to specify the object's attributes (like Name, Type, Class, Weight, etc). The sample screen below shows an object for which the attributes have been set: The following is a quick discussion of the main object attributes and what they are used for. The complete set of attributes is listed in the Script Reference Guide, where you can see how to manipulate objects and set their attributes from within a script program. NOTE: The section entitled Predefined Object Types contains a detailed discussion of each of the object types that are predefined in DCGAMES. Additional object types can be created using the script language, as detailed in Type The type attribute is used to determine what the object can be used for. Food can be consumed, weapons can be wielded, armor can be worn, vehicles can be ridden. The DCGAMES system includes the following predefined types: Food, Weapon, Ammo, Armor, Shield, Amulet, Ring, Potion, Scroll, Staff, Chest, Key, Gem, Book, Gold Sack, Torch, Lantern, Rope, Hooks, Mirror, Signs and Vehicle. You can use the +/- signs to scroll through the list of valid types. You can, of course, create your own object types using the Script language to modify the OBJECT.SCR file, which controls the behavior of all object types. Class Within each type of object, the class attribute allows you to further differentiate between objects of the same type. For example, a Weapon may be a Blunt, Edged or Missile weapon, and an Amulet's class indicates the type of spell that the amulet has. Once again, you can create new classes or modify the existing ones if they don't fit your needs. Graphics Block You have already chosen the graphics block you will use, but you can change the block by using the +/- keys or pressing F2 and choosing another graphics block from the list of blocks shown. Registered users can create new graphics blocks by using the DCBLOCK graphics block editor. Description This field holds the name of the object. Up to 15 characters may be used. This name will be used to describe the object. The object in the example is called "Long Bow". Script The behavior of all objects is controlled by the OBJECT script. This script handles all generic objects, such as food, weapons, armor, etc. The script can be extended to handle new types of objects, or classes of any given type. In some rare cases you may want to create an object that has a behavior that is different from the generic objects in some particular way. In that case, you will write a script to handle that object, and give the name of the script in this field. Whenever the object is used or referenced in the game, your script will be allowed to control the object's behavior. If your script does not handle the specific behavior, the OBJECT script will be used instead. PCX File Each object can have a PCX graphics file associated with it, which is displayed when you look at the object. Specify a value between 1 and 999. The PCX file should be called OPICT###.PCX, where ### is the 3 digit number (001 through 999). Value The value of an object is the amount that you would be expected to pay for it if you bought it at a local store. If you SELL the object, you will usually get about 1/2 of the value. For a CHEST or GOLD SACK, the value indicates the amount of gold found in it. The value field is entered in silver pieces (SP), and 10sp is equal to 1 gold piece (GP). Count When you create an object, you may want to specify that the graphics block represents more than a single object. For example, ammunition (such as arrows) would be represented by a quarrel full of arrows. In that case, the count would be the number of arrows being represented. Weight When you create an object, you may specify it's weight. An object with a weight of 1 is considered to be weight-less. A weight of 0 is not valid. A character's ability to carry objects varies depending on the character's type and strength. Objects with a weight between 1 and 255 may be carried. Objects with weight higher that 255 are considered to be too heavy to be moved. This is, of course, customizable in the OBJECT script. Weigh Text displayed if you try to move the object 999 The is much too heavy 998 The can't be moved 997 Why would you want to take the with you? 256+ You can't move it. Other Attributes Each object may have up to 5 different variable attributes. These attributes are used for different purposes depending on the object's type. For weapons, the 5 attributes are: hands (the number of hands needed to wield the weapon), range (how far away from the player can the weapon reach), damage (approximate damage done with the weapon) and ammo code (if the weapon is a missile class weapon, then it uses ammunition of class ammo code. End Game This field is a number that can be used to indicate that the game should finish under special conditions, such as when someone GETs the object, or GIVEs it to someone else. There are much better ways of controlling the end of the story. This field is retained for compatibility with games written with older versions of DCGAMES, in which the number of ways to end a game were pretty limited. Text Some objects (such as books and signs) may have some text written on them. The text field allows you to specify a text record which contains the object's text. Each text record can contain up to 16 lines of text. At the bottom of the screen you will see the first six lines of the text record. Pressing F4 will allow you to access all 16 lines. Creating Characters You can populate your worlds with all kinds of characters. Each character created has it's own unique characteristics, which vary depending on the character's type, class and statistics. To create a character, you press 'C' and fill in the form. Like you did with objects, you can 'G'et a character and then 'C'reate it somewhere else, or you can 'D'uplicate a character and 'C'reate a new one based on the old one. Type The character type indicates the normal behavior of the character. Unlike object types, each character type has it's own script that handles the character's behavior. By default, a character's script has the same name as the character type. DCGAMES includes the following predefined character types: Regular, Hostile, Merchant, Healer, Civilian, Teller, Quester, Beggar, Trainer, Guard, Prisoner. The section Predefined Character Types contains a more detailed description of each character type as implemented by the corresponding script. You are welcome to modify the defined types or invent new ones. Class Where the character type was used to indicate the profession of the character, it's class is used to indicate the capabilities of the same. Currently defined classes are: Human, Elf, Dwarf, Archer, Wizard and Guard. Graphics Blocks A character may have two graphics blocks associated with it. The first one is the one that is used to represent the character in the adventure. The second one is only used under certain conditions: For Hostile characters, the second graphics is used to represent the followers or members of the band. For Prisoner characters, the first graphics represents the character as a prisoner, while the second one represents the character once the prisoner has been rescued. Of course, under script control you may use the second graphics block for any purpose. A large number of graphics blocks are available to select from, and you can create additional ones. Any graphics block can be used to represent any character type. For example, a bartender can be a massive troll, and a little girl can be the leader of a band of monsters ravaging the country side. Your common sense is the only restriction. Be consistent. Name A character can have a name of up to 15 characters. PCX File A graphics PCX file named CPICT###.PCX can be associated with the character, where ### is a number between 000 and 999. A -1 indicates that NO graphics file is associated with the character. VFL File If you have a Sound Blastertm or compatible card, characters can handle speech in full voice. A .VFL file (Voice FiLe) may contain up to 32 Sound Blaster format .VOC files, each associated with a unique keyword. During regular conversation, the appropriate voice recording will be played back if it is available. A VFL file is formed using the MKVFL utility, and has name VOICE###.VFL, where ### is a number between 000 and 999. Again, -1 indicates that no voice file is associated with the character. Script As mentioned before, each character type has a unique script associated with it. The default script for a character has the same name as the character's type. In some special cases, you may want to create a unique script for a special character. Such is the case of JIMMY, a character that is supposed to be the player's best friend in the example adventure game. A special script file (JIMMY.SCR) is needed to handle interaction between the player and the Jimmy character. Count The count field is used to indicate the number of characters represented by a single character block. It is used mostly for Hostile and Guard types, which represent multiple enemies during a battle. Treasure Each character can carry an amount of money. The amount is given in silver pieces (where 10sp = 1gp). For some character types, this field is used for specific purposes. See Predefined Character Types for more details. Text All characters except those with hostile intentions can have a block of 16 lines of text associated with them. On each line, the first 8 characters are a topic of conversation, and the rest of the line is their response if you mention the topic. Some topics have predefined answers in case none has been provided by the designer. In such a case a standard answer is given, such as NAME, JOB, HELLO, BYE. A DEFAULT keyword is used to respond when an unknown topic is mentioned. Note that all text records are all stored in the TEXT.DTA file (both object and character text). To modify the text records directly, use the T)ext command from the main window. Statistics Each character has a statistics record associated with it. The statistics record is created with the S)tats command and is stored separately from the characters. Multiple characters can share a single statistics record. A statistics record holds the following character attributes: Level, Strength, Speed, Aim, Dexterity, Hit Points, Intelligence (IQ) and Power. Both current and normal values are given. For example, a magician's Power points are consumed casting a spell, and are slowly restored back to their normal value. The current value is how many power points are still available for casting other spells. In addition to these attributes, each statistics record can hold up to 16 objects in a backpack, as well as the 6 items that can be worn by a player (Weapon, Armor, Shield, Ring, Amulet and Staff). Since the statistics records can be shared, you can create a single record to represent all characters of a given type (for example the guards of a castle), and all would carry the same equipment and have the same attributes. Some character types may use the statistics backpack for different purposes. For example, a hostile character carries in it's backpack the treasures that would be left behind if it were killed, etc. For more details, see Predefined Character Types. While the game includes many predefined statistics records, you will probably want to define custom ones for all your main characters. Note that the Type, Class, Block and Name attributes are over-ridden by the character's attributes of the same name. These attributes exist in the statistics record mostly to allow the game builder to remember why the record was created in the first place. Also, when a character's statistics are modified, the changes are saved into the statistics file. Thus, selling an object to a merchant (which places the object in the merchant's backpack) will make that object available to ALL merchants that share that statistics backpack. Predefined Object Types The following is a list of object TYPES, and a description of their basic nature and attributes which you can manipulate to create your own unique objects: Food A single unit of food will feed one person, and last about 500 steps. This is usually quite enough, as food is cheap and can be carried in quantity without penalty. Food can have a personal magic effect (cure, heal, poison, etc..), in which case it will be kept separate from the regular food. When creating magical food, you can specify the number of units that will be affected, as well as whether the effect is temporary or permanent. Weapons Weapons can be BLUNT, EDGED, MISSILE or MAGICAL. You specify the number of hands needed (1 or 2), the range (in squares), the damage done (in HP units) and the type of ammunition needed (if any). Some player types are restricted in the types of weapons they can use, either by weight, or type. See the player's guide (DCPLAY.DOC) for additional information. Ammunition A weapon may need some kind of ammunition. The Ammo_Code for the weapon should match the Ammo_Type. The count is the number of rounds available. The ammunition may have poison, or do extra damage above the normal damage caused by the weapon. For example, poison arrows, or explosive bullets, as opposed to normal arrows or bullets. Armor Armor can increase a character's "Armor Class". The higher this number, the better protected you will be against hits. Some characters can't use armor, while others have a limit on the weight of the armor they can use. See the player's guide for restrictions on the type of armor that can be used by the different character classes. Shield A shield works just like armor, but it requires a free hand. Some characters can't use shields at all. See the player's guide for restrictions on the type of shields that can be used by the different character classes. Amulets and Rings Magical amulets and rings can be worn by anyone. They have a limited number of charges (uses), and may have a personal magic effect that can be temporary or permanent. Potions Magical potions can have personal magical effects. They can be used only once, and may have temporary or permanent effect. Scrolls Magical scrolls can be invoked only once. They have magical spells that be invoked by almost anyone. The attributes vary depending on the spell they contain. Staffs A magical staff requires a free hand to wield, but can cast a magical spell. You can specify the number of charges (between 0 and 255). 255 means it never runs out and 0 means there are no charges left. Chests A chest can contain gold (it's value). If the value is 0, then the chest will contain a random number of gold pieces that is related to the player's current hit points. Chests can be locked, and the locks can be trapped. The traps can be poison or bombs. If the Lock Code of a chest is non-zero, then the chest is locked, and must be opened using a key with a matching Key Code. The lock can also be broken, but you run the risk of setting off a trap (if any). Keys A key can open a locked chest or door. The Key_Code should match the Lock_Code in the chest. Doors always use a Key_Code of 0. Gems A Gem can be invoked for type 1 magical effect. It's effect may be temporary or permanent. A gem has a limited number of charges (uses). Books A book may have up to 16 lines of text, or have a PCX picture associated with it. Either is shown when you LOOK at it. Gold Sack A gold sack will contain an amount of gold. Torches and Lanterns Torches and Lanterns are meant to be used in dark places. Since light and darkness is not currently implemented, there is no real need for torches and lanterns. In the future, there will be, so plan to make these available (say by a local merchant in some small town). Rope and Hooks Needed for climbing. (Not currently implemented) Mirrors Doesn't do anything usually. Signs Signs can have up to 16 lines of text painted on them. Signs can hang from a wall or stand on the floor. A sign's text is displayed when the player looks at it, unless it has a PCX file associated with it! Vehicles Vehicles can be used to travel faster and easier. The type of vehicle indicates the type of terrain they can be used on: SMOOTH LAND, ALL TERRAIN, LOW FLYER, MID FLYER, HIGH FLYER, LOW WATER and DEEP WATER. At the moment fuel (or food for live vehicles like horses, etc) has not been implemented, so vehicles are easy to use. You cannot take a vehicle out of the world it is in, unless you can carry it with you (weight < 256). It is a good idea to limit the types of vehicles that can be carried in the adventure. A good example of such a vehicle would be a flying carpet. Predefined Character Types Regular This individual will talk to you about topics in it's text record, and will JOIN the party if asked. The script REGULAR.SCR handles this type of character. Civilian Similar to a regular character, but this individual is not interested in Joining the party. The default script is CIVILIAN.SCR Hostile This individual will attack on sight. Hostile characters are the only ones that don't have a script. They are handled by the game driver since they are animated. At a later time, when animation is done in DCGAMES, hostile characters may have scripts. In the statistics file there are 4 statistics records dedicated to hostile characters. These records represent Small, Medium, Large and Pirate hostiles. The main differences between the first 3 lies in the attributes (strength, etc) and weapons (damage). The last one is used specifically to generate pirate ships (characters) which when destroyed must leave behind the ship (i.e. the backpack of a pirate ship's statistics should contain a complete ship, and probably a small skiff also). Merchant This character buys and sells items. The character's backpack contains the objects that it will sell. A merchant will only buy items of the same type as the ones in it's backpack. For example, if the merchant sells weapons and armor, it will also buy any kind of weapon and armor, but will not buy shields or rings or any other type of object. In the statistics file there are 3 statistics records dedicated to merchants (Magic Potions, Magic Rings & Amulets and Magic Staffs). These statistics records are used by the game system to generate treasures for random monsters. The P)arameters command can be used to change the 3 records that will be used for this purpose. The merchant's script is called MERCHANT.SCR. Healer A healer will Cure poisoning, Heal wounds, Remove cursed items and Resurrect dead players. All of this for a price, of course. The healer script is HEALER.SCR. Teller A teller will talk to the player and (for a price) will deliver some cryptic message. The message is stored in the teller's text record. The entire record is displayed. No keywords are used. Questor A quester will ask the player to bring him some item or rescue a person. The backpack of the quester holds the items that are being requested. The quest is finished when the player delivers to the quester an object with the same Name and Type as the one in the quester's backpack. The quester is the only character allowed to have a character in it's backpack. This character is not real, it is just a place holder that let's the quester identify a person that was meant to be rescued. (See Prisoner below). Prisoner A prisoner is someone that needs to be rescued. The prisoner will join the party to escape from wherever it is being held. When a quester character finds the prisoner to be a member of the party, it removes the prisoner and considers the quest to rescue the prisoner to be complete. Beggar A beggar asks for money. If any is given, it might give a good hint, if not, it might try to steal some money. The hints are stored in the beggar's TEXT record, and no keywords are used. The first line of the text record contains the beggar's opening line. Trainer A trainer will charge a fee to train one character in the party, providing an expensive but quick way of increasing the character's attributes. Guard The player's party is prevented from approaching a guard. This allows the guard to prevent access to a door or a passage. When the player talks to the guard, he/she will be given the opportunity to provide a password or try to bribe the guard. Once this has been done, the guard will allow the player to pass through the guarded spot. Predefined World Types When the party enters or exists a world, the world's script is executed. If the world does not have a script, the script WORLDDEF.SCR is executed. This script handles the features of the following world types: Outdoors This is a true WORLD. If you travel long enough in any direction, you will return to your original point of departure. (i.e. you wrap around at the edges). In all other world types, walking of the edge of the world takes you out of the world through the Edge Door of that world. In an outdoor world, random monsters may appear. When a random monster is created, it's statistics are chosen from a group of 4 statistics records that are configured in the P)arameters screen. The graphics used for the monsters are also configured in the parameters screen. Outdoor worlds use Land and Water based monster graphics. Big City, Small Town Walking to the edge of this world will take you out of it through the Edge Door. This is normally the door that you entered from. No random monsters appear inside a city or town. Right now there is no difference between a SMALL TOWN and a BIG CITY. In the future, there might be some. While there is currently no penalty for taking objects (stealing) in a town or city, it is easy to add such a feature, and it probably will be added to the scripts soon, so don't place loose objects that the adventurer is supposed to get in towns or cities. Dungeon This is an underground cavern. Random monsters are created from the Cave Monsters parameter graphics. If you reach the edge of the dungeon, you will "wrap" in the same way that you do OUTSIDE. If you wish to prevent from happening, make sure the EDGE of the dungeon is not reachable by having solid walls around the world. Hideout Currently no different than a CITY or TOWN. However, it may later have special features that distinguish it from a normal place. This is a good place to put "specialty" stores. No random monsters will appear. Walking of the edge is the same as for CITIES and TOWNS. Houses and Castles No random monsters will appear in a HOUSE or CASTLE. Walking of the edge is the same as for CITIES, TOWNS and HIDEOUTS. There are no other special features. In houses and castles you are allowed to take anything that's loose. To prevent an object from being taken, make it very heavy and the player will be unable to carry it! Arena This is a special world in which a monster will be created every time you enter, as well as periodically while you are in it. It is intended as a place where you can fight random monsters to build up your party. The monsters have no treasure since they are assumed to be caught and brought to the arena, rather than free. End Game When the character enters this world, the game ends. This way of ending a game was used before scripts were available. Now, you can end the game from within a script, but this is retained for compatibility with previous systems. The Magic System The magic system is explained in the Game Player's Guide (DCPLAY.DOC) in more detail. This section introduces the magic system so you can create objects that have magical properties. Two types of magic exist, and each will be treated separately. Personal Magic Personal magic operates on an individual, and is usually channeled through potions or artifacts that can be worn close to your body such as rings, amulets and gems. The known effects are listed in the following table: Effect Description CURE Cures poisoning and disease HEAL Speeds up the healing process POISON Causes poisoning RESTORE Cures all wounds completely STRENGTH Increases a subject's strength DEXERITY Increases a subject's dexterity SPEED Increases a subject's speed AIM Increases a subject's aim HIT POINTS Increases a subject's hit points ARMOR CLASS Protects against damage IQ Increases intelligence POWER Increases magical power When you create an object, be it Food, Potion, Ring, Amulet or Gem, you can specify a magical property for that object, as well as the amount of effect that the item will have and whether the effect is permanent or temporary. For example, you might create a ring of might, which would increase your hit points by 80 points, allowing you to take a lot more damage than normal during a battle. Such an item should have TEMPORARY effect and a limited number of uses, otherwise, it would make the adventure too easy! In general, for each object you create that can have magical properties, you can specify it's class (type of magic), points of effect (units), whether the effect is temporary or permanent, and the number of charges or uses that the object has. Not all properties apply all the time. For example, food can only be used once, and a 'cure' spell has no points or duration, it just removes the poison. The main thing to remember when you create magical items, is that the better the magic, the more it should cost and the harder it should be to obtain. Also, permanent effects should never be attributed to objects that can be re-charged, since a good magician could just keep re-charging the object and max out all the characters. A potion, since it can only be used once, is a prime candidate for a permanent effect object. In the example adventure, there is a merchant in one of the cities that sells potions. A 'red' potion (which increases strength) is available for a relatively small amount of money, but a 'deep red' potion (which is supposed to reflect it's potency) costs a LOT more. External Magic (Spells) The second type of magic is much more powerful, and can only be invoked by a wielder of magical power. Invoking a magical spell consumes energy which must be replenished through rest and meditation. Sometimes, a mage can infuse a spell into a conduit that will hold that spell until it is released by another subject. Example of such conduits are magical scrolls, or staffs made of the rarest woods. The following magical spells require concentration and meditation, and are not suited for use during a battle: Effect Description DESTROY Destroy one object DUPLICATE Duplicate an object LEAVE Exit a cave through teleportation RESURRECT Bring a dead person back to life LISTEN Bring far-away conversations to your ears LOCATE Find all exits/entrances in the immediate area. RECHARGE Recharge a magical object (Ring, Amulet, Gem or Staff) FLOAT Reduce an object's weight ANALYZE Provide detailed information about an object VIEW Provide an eagle-eye view of the area. The following spells are for battle situations only. Effect Description KILL Causes massive damage to a single foe, usually resulting in it's dead. CONFUSE Confuses your foe, causing it to attack it's own kind. PARALYZE Paralyzes a foe for a small amount of time. SCARE Scares a foe, causing it to flee. DAMAGE Causes massive damage to a single foe, usually resulting in it's dead. Note that the magic system described here is implemented with scripts (OBJECT.SCR and CASTING.SCR), and that it can be both extended (you can create more magic effects of either type, new types of magic, new objects with different magical effects or new characters with different magical powers), and modified (you can change any and all of the above to any extent you wish).