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 Creating a new game 7 F1 - Save 10 F2 - Parameters 10 F3 - Copy World 10 F4 - Full Landscaping Palette 10 F5/F6 Previous/Next World 10 F7 - Doors 10 F8 - Save Screen 11 Flood Landscape (F9) 11 C)opy 11 D)rop 11 P)ut 11 G)et 11 J)ump 11 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 RSC 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 26 Amulets and Rings 26 Potions 26 Scrolls 27 Staffs 27 Chests 27 Keys 28 Gems 28 Books 28 Gold Sack 28 Torches and Lanterns 28 Rope and Hooks 28 Mirrors 28 Signs 28 Vehicles 29 Predefined Character Types 30 Regular 30 Civilian 30 Hostile 30 Merchant 30 Healer 31 Teller 31 Questor 31 Prisoner 31 Beggar 31 Trainer 32 Guard 32 Predefined World Types 33 Outdoors 33 Big City, Small Town 33 Dungeon 33 Hideout 33 Houses and Castles 34 Arena 34 End Game 34 The Magic System 35 Personal Magic 35 External Magic (Spells) 36 D C G A M E S Version 4.0 WORLD BUILDER USER'S GUIDE August 1995 (c) DC Software, 1989-1995 7908 Kettlewood Court Plano TX 75025 (214)-491-1579 Introduction A Note from the Author I've been working on version 4.0 of DCGAMES for almost 2 years, with a big break in continuity due to a 14 month stay overseas during which I made little progress. I hope that the new features make it worth your while. The DCGAMES system gives you, the game author, the ability to write a complete adventure/role playing game without having to write a line of code, draw any graphics, create music or sound effects, etc. It also gives you all the ability to do all of the above, allowing you to trim, modify, extend or replace any part of the system that you want. This is accomplished by several means: The game system gives you a complete set of landscaping, character and object graphics tiles, which you can use to create your adventure without having to draw any yourself. Registered users can use the graphics block editor to trim, modify, extend or replace the tiles to your specific needs. The game system supports generic Sound Blaster and AdLib sound and music cards, and includes a good set of pre-recorded sound effects for you to use, And, you can trim, modify, extend or replace the sound effects, as well as add recorded voices for your characters and mood seting music. The game system supports just about any VGA or SuperVGA graphics card, and does not tie you to any specific graphics mode. You decide what resolution you want to use. Your game can be run in any of the supported resolutions, regardless of what resolution you created it in! The game provides a complete set of rules (scripts) implementing character classes, object types, magic, different types of worlds, etc. The 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. The main benefit of the DCGAMES 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 additional enhancements, like: File I/O to allow you to read and write data files under script control. Container objects, to be able to put multiple things into a container and carry the container (for example, chests, bags, magic books!, etc.) Line-Of-Sight testing to implement dark areas (that you can't see) as well as prevent the player from seeing things that are behind a wall, for example. Light and darkness (as in night and day as well as in places where you need a light source to see in, like caves). Animation, where each character moves according to his/her own schedule, even when you are not around. Animation of an individual character in the form of moving figures. When you move from one place to another, the character 'walks' instead of must jumping from one square to another (Most likely this will be through the use of sprites or a set of graphics blocks that are displayed one after the other in sequence). 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 please 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, character or world type. For example, there are 3 classes of weapons currently defined, blunt, edged and missile. You could create a new weapon laser which is like a missile weapon, but only reflective armor will work against it. You would also add a reflectiveness attribute to the armor type. 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. Only the main characters in a story would have personalized scripts. 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 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 DCGAMES 4.0 requires at least a VGA card. While it's possible to run the system on lesser graphics devices, it creates a logistic nightmare to support all of them. Almost all registered users have a VGA card by now, so it shouldn't cause a big problem. It also supports SuperVGA cards, with resolutions up to 1024x768x256, but the best practical mode is 640x480 with 256 colors on SVGA cards and 640x480 with 16 colors on regular VGA cards. The system will run with 640KB of memory, but it does a lot better if you have extended or expanded memory available. It currently uses this memory to cache the graphics tiles, but a future version will probably run in protected mode to get direct access to that memory. If you have a SoundBlaster or compatible sound card, the system supports voice (.VOC) and music (.CFM) playback. Voice files can also be played over the PC speaker, but sound quality suffers significantly. Shareware This software is distributed as shareware. You may copy and distribute this game to other people in accordance with standard shareware practice, including that you don't distribute partial copies of the system and that you may charge a reasonable fee for your distribution service. If you find that this game system meets your needs and continue to use it beyond a reasonable trial period, you should register it with DCSOFTWARE by filling in the registration form. Note: The graphics block editor (DCBLOCK.EXE) is NOT part of the shareware product. It is available only to registered users. Upon registration you will recieve the latest copy of the system, including free updates for at least 1 year, printed documentation, example games, etc. The complete product does NOT fit into a single diskette, and is usually packaged using PK-Ware's PKZIP product or some other archiving program. You can find this product in CompuServ in the GAMERS forum, Library 9 (CRPG). Look for file DCGTXT.LST which contains a complete list of all DCGAME component files. You may also find on the Internet. Use 'archie' to find DCG400 or DCGAMES4, or visit my wave page at 'http://www.iadfw.net/davidh1/index.html' for more info. 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. Colors Resolution Description Mode 256 320x200 VGA low resolution VLO 16 640x480 VGA high resolution VHI 256 640x480 SuperVGA VH1 256 800x600 SuperVGA VH2 256 1024x768 SuperVGA VH3 Note: CGA, EGA and Tandy-1000 graphics modes are no longer supported. There was no demand for them and they were difficult to support. Creating a new game You should install DCGAMES according to the installation instructions. This documentation assumes that you have done so and have the following setup: The directory C:\DCHOME contains the system files, such as executable programs, graphics tiles, etc. The DOS environment PATH includes C:\DCHOME The EXAMPLE game has been installed in C:\EXAMPLE To start creating your game, you would type: C:\> mkdir \mygame C:\> cd \mygame C:\mygame> dcworld 1 However, for the purposes of this exercise, we will use the example game as a starting point, so instead type: C:\> cd \example C:\example> dcworld The world editor will go to world # 0, and position the cursor over door # 0. 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 palette of landscaping graphics blocks. You can use the mouse to select a landscaping block by clicking on the tile in the palette. Since more blocks are available than can be shown on screen, you can click on the triangles at the top and bottom of the palette to scroll through it. You can also click with the LEFT mouse on the palette to display a larger palette including additional information on each of the tiles: You are now looking at a full page of graphics landscaping blocks. You can select a tile using the mouse or move the cursor with the arrow keys and and press Enter (or Return) to select. You can also see the other pages using the PgDn and PgUp keys to move from one page to the other. The text to the right of each block indicates the density of the block. During game play, the CONTROL script will use the land density to determine where the player can go, taking into account the type of terrain and any vehicles the player may be using. Now go back to the main screen by selecting any landscape tile or pressing the ESCape key to cancel the operatoin. We are going to make some changes to the landscaping. Selecting different landscaping blocks, build a small island just of the coast. If you want to shift your view of the world, you can use the Ctrl-Left and Ctrl-Right arrows to shift it left or right, and use the Ctrl-PgDn and Ctrl-PgUp to shift it down or up. You can use the mouse to select tiles and click in the desired location to drop that tile into the world, or you can use the keyboard to move the cursor and press the Insert key to drop it. Note: you can also press the Space key to toggle the keyboard drawing mode from MOVE to DRAW and viceversa. When the mode is DRAW, moving with the cursor keys will drop the currently selected tile on top of the new cursor position. 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. Note: If you press the Esc key, all changes you have made to the current world's landscaping, objects and characters are discarded and a new copy is reloaded. The following commands can be useful when creating the worlds: F1 - Save 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. F2 - Parameters Allows you to change some of the configuration parameters for the game. This includes how time flows in the game system as well as the images used for random monsters of progresively larger (tougher) size. F3 - Copy World 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. F4 - Full Landscaping Palette Displays the landscaping blocks. Same as clicking on the landscaping palette with the left mouse button. F5/F6 Previous/Next World Takes you to the previous or the next world respectively in numerical order (not through a door). 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. Changes to the current world are saved to disk whenever you move to another world. F7 - Doors Highlights the "doors" in the current world that are visible on the viewport using the FRAME block from the DCSYSTEM tiles. F8 - Save Screen This "undocumented" feature saves the current screen to a file in PCX format. I used it screen-capture the images in this document. It creates a file named WSCRNnnn.PCX, where nnn starts with 000 and is incremented every time you press F8 during a single execution of DCWORLD. 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. C)opy Remember the object or character that you are highlighting, because you want to create a similar one later. D)rop Create an identical copy of the currently remembered object or character, without editing the object or character to change it. P)ut Create an object or a character. You are asked what type you want to create. If the object or character being created is of the same type as the one being remembered, the object editor presents you with that object as a starting point for your new on. G)et Remove an object from the world, but remember it so you can D)rop it somewhere else or P)ut it down with modifications. 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 and select O)bject. You should see the following 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 show is a recomended type. You can use any object tile for any type of object, but you shouldn't do thing sthat don't make sense. For example, don't take the image of the turkey (which represents food) and use it to create a weapon! 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). You can also change the image you originally selected for that object. 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. Remember that many of the attributes and their use are set by the scripts, which can be modified. This is a description of the default behavior as implemented by the predefined scripts that are included with the game system. 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. RSC File If you have a Sound Blastertm or compatible card, characters can handle speech in full voice. An .RSC file may contain any number of voice files in .VOC format. You can use the "voice"script command to play it. An RSC file is formed using the PACK utility, and has name VOICE###.RSC, where ### is a number between 000 and 999. Again, -1 indicates that no voice file is associated with the character. Note that version 3.0 voice files were called .VFL. Use the UNMKVFL utility to unpack old VFL files and then use the PACK utility to re-pack them as RSC files. 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. If the record is updated during game play, the update affects all characters sharing it. Some character types may use the statistics backpack for different purposes. For example, a hostile character may leave it's backpack's contents as treasure when killed, and a merchant sells and buys the contents of it's backpack. 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. The Type, Class, Block and Name attributes are given mostly help the game builder to remember why the record was created in the first place. 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. Again, remember that these types of objects are implemented through scripts. You can modify the way they work, add new classes to the existing types and even create new types of your own. Most of the object behavior is controlled by a large script called OBJECT.SCR. You might want to print that script file and compare it with the description shown here. 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 (see The Magic System elsewhere in this manual) that can be temporary or permanent. The amulets and rings provided with the game system associate the color and material that the amulet or ring is made of with the magical effect it has. When creating an amulet or ring with the DCWORLD program (Put-object command) press F3 to see a list of 'example' rings and amulets. The associations in these examples are as follows: Effect Color Stone CURE White Pearl HEAL Yellow Topaz POISON Cloudy Stone RESTORE Purple Amethyst STRENGTH Red Ruby DEXERITY Blue Sapphire SPEED Brown Amber AIM Pink Garnet HIT POINTS Green Emerald ARMOR CLASS Grey Granite IQ Clear Crystal POWER Black Onyx Potions Magical potions can have personal magical effects. They can be used only once, and may have temporary or permanent effect. Their effect is associated with the color of the potion from the same table used for rings and amulets. The potency of the potion is indicated by it's color. For example, a Red Potion increases strength, but a Deep Red Potion would be expected to either be more powerful or have 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. Just like potions, rings and amulets, the Staff's effect is associated with it's description. In this case, the material that the staff is made of, or just it's description. Again, these are just examples. You may use them as they are given or create your own. Effect Material DESTROY Charcoal DUPLICATE Two Sided LEAVE Winged RESURRECT Greenwood INFORM Worn LOCATE Magnetic KILL Sharp CONFUSE Twisted SCARE Bone DAMAGE Heavy PARALYZE Hardwood RECHARGE Energy FLOAT Light ANALYZE Crystal VIEW Feather 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). It's description is that of the stone associated with the ring or amulet. 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. This is one of the few object types that have been implemented in code rather than in a script. The vehicle class tells the program what kind of terrain it can be used on. This means that you can't create new classes of vehicles, but you can certainly change the interaction of the vehicle with the player. For example, you might require a deed of ownership document to be in the possession of the player before he/she is allowed to use the vehicle, or you might require some type of fuel which is consumed when the vehicle is in use. The fuel would be a new object type, and the class of fuel would probably match an attribute in the vehicle itself. You could even write a special script for handling a vehicle. Example: When you board a hot-air balloon you could move the character randomly based on some 'air current' until the character chose to land. The following are the vehicle classes and the type of terrain they can be used in. Note that each landscaping graphics block (in the graphics file DCBLOCKS.mde) has an associated terrain type which can be changed only with the Graphics Block Editor. Vehicle Class Examples Terrain Type None Walking Flat terrain. Rough with difficulty. Mounted Horse Only flat and rough, but faster All-Terrain Vehicle Car Over small obstacles (trees, etc) Low Flyer Flying Carpet Over small obstacles and low water Mid Flyer Helicopter, Hot Air Balloon Over water, but not high mountains High Flyer Air Plane Over mountains and water Raft Raft Low Water, Rivers, Lakes Boat Boat, S hip Deep Water (Ocean) 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 scripts, 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), weapons (damage) and treasure (the backpack!). The 4th record is used for pirate ships, in that it is assumed that the backpack contains a boat. Thus, when you 'defeat' the 'pirate ship' monster, the boat remains behind! 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 also 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. Prices for services are based on the amount of gold that the healer character is carrying. 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. Note that the teller's gold amount is the price that is requested. 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. The PRISONER and the QUESTER script complement each other. For example, when the player finishes a quest by returning to the quester with the person they were looking for in the player's party, the quester removes the person from the party and increments that person's TEXT VOICE and PICTURE attributes. In effect, each prisoner is expected to have two consecutive text, voice and/or picture entries, one used while still a prisoner, and one used when rescued. 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 or greeting, and the other 15 lines are assumed to contain hints. 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. The amount of gold being carried by the trainer is used as a basis for calculating the fees that will be charged for training in the different areas. See the TRAINER script for more information. 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. The amount of money being carried by the guard is assumed to be the amount that it would take to bribe him/her. See the GUARD script for how this is implemented. Also, the PASSWORD is assumed to be contained in the 4th line of the guard's TEXT block. Before scripts existed, this is where the password was stored, and it is retained for compatibility with previous releases. You can, of course, modify the script to do anything you want. 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 are implemented in the scripts. One is personal, affecting the individual and another is external, affecting others. Remember that this is all implemented in the scripts, so you can change it any way you want to. You can even remove magic altogether if it doesn't fit in with your game. Magic is implemented throughout various scripts. The CURRITEM script implements magical items that you wear (like rings, amulets) or eat (food, potions, etc.). The CASTING script implements magic for spell users. And the CONTROL script takes care of items that get invoked (like reading a scroll or zaping with a staff). 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 a magical object, you specify the type of magic, the units affected and whether the effect is permanent or temporary. For example, you might create a ring of might, which increases hit points by 80. Rings can be used multiple times, so you can set the number of charges to 5 and make it a temporary effect. In order to make the game more enjoyable, make sure your magical tems make sense. Permanent effects and large number of charges should result in a higher price (for example). Also, items with permanent effect should be rare. 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. Some magical spells require concentration and meditation, and are not suited for use during a battle, while others (marked with *) are meant to be used in a battle only. 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. 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. 1 The game system will look in the local directory and then in the directory where DCWORLD is located to find the graphics tiles to use. If more than one set of tiles is found, it selects in the following order: VHI, VLO, VH1, VH2, VH3. You can aso override the mode by specifying it as a parameter.