textfiles/computers/DOCUMENTATION/dcworld.txt

1834 lines
60 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 <object> is much too heavy
998 The <object> can't be moved
997 Why would you want to take the <object> 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.