Glossary
The following terms form the basic lingo of the BYOND system. Many of them
are used by players as well as designers. I like to call it the BYONDish
lexicon, but much of it is borrowed from the general terminology of network
software.
absolute path is a path which starts at the root (the top of an
informational tree).
address see network address.
area is a basic object type used for regions on the map or rooms off
of the map. They appear underneath everything else on the map.
argument is a parameter to a procedure. The value of the argument
may be stored in a variable for use in the procedure.
ASCII is the American Standard Code for Information Interchange. It
defines numerical codes for the basic typewriter characters and a few
special control characters. DM source code is written in ASCII.
atom is an area, turf, obj, or mob object, the fundamental building
blocks for the world. It also happens to be an acronym with the letters in
the same order as the object layers on the map. (The Guy who
discovered the atom is a verbal genius in my opinion.)
avatar is the virtual body of the player. This is always some type
of mob object.
block see code block.
boolean expression is a value interpreted to be true or false. False
values are zero, null, and an empty text string. Everything else is true.
bug is a programming error. These used to happen frequently five or
ten years ago, but people have become so clever that they are almost a thing
of the past. People, that is. Not bugs.
BYOND means Build Your Own Net Dream. This acronym is used to
describe the software suite composed of the client, server,
compiler, and related utilities--the BYOND system. It also refers to
the collection of worlds implemented by this software--the BYOND universe.
It may also be used in place of the preposition beyond (as in
"Welcome BYOND!"). It is good form to dangle the preposition so that you
can put an exclamation point after it.
byte code, also known as binary code, is generated by the
compiler from the programmer's DM code and is used by the server to
run the world. It is called byte code because it has been translated
from human readable instructions (the source code), in which the basic
lexical units (or tokens) are English-like words, to a more computer-friendly
format in which the basic units are individual bytes (that is, eight binary
bits of information). Note that all data (whether it be byte code or source
code) is stored in binary form by the computer. This term distinguishes not
how the code is stored but how it is interpreted.
cache is temporary storage space. See resource
cache.
call means to execute a procedure. Other synonyms are run
and invoke.
case sensitive means upper case and lower case letters are not
equivalent. Instructions which are case sensitive usually contain a capital
letter (like findText) to distinguish them from the case
insensitive counterpart (in this case findtext). Node names in the
DM language (including object types, variables, and procedures) are case
sensitive.
child is a term used to describe a node in the code tree which is
contained within (or branches off of) another node.
client is the program that players use to enter commands and see what
happens as a result. In other words, the client handles input and output.
code alone generally refers to the source code.
code block is a group of statements which are executed or skipped
over as a unit. Most compound statements that control the flow of execution
have a body which may consist of a single statement or an entire block of
statements.
command completion is a feature which expands partially typed words
on the command line or offers a choice of possible values if there is
ambiguity. It is activated by pressing the spacebar.
command line is the entry box in the client where you type commands.
comment is a note in the code which is entirely ignored by the
compiler. It is only there for the benefit of anyone reading the code.
compiler is the program which reads the programmer's code (in
.dm files) and produces the corresponding byte code in a
.dmb file.
compile-time is the point at which the code is compiled. A
compile-time error, for example, is one which occurs during compilation.
This term is normally used to distinguish from actions which occur at
run-time.
connect is a general term for opening a channel of communication
between two programs over the network. It is often used as a synonym for
log in.
constant is a simple expression containing a single value, such as a
number or text string. It could also be a more complicated expression that
contains operators but still can be evaluated at compile-time rather than
run-time.
crash means to terminate abnormally. For example, when a procedure
crashes, it halts in mid-execution because of attempting some operation that
doesn't make sense (like dividing by zero).
Dantom is the crew of programmers who wrote the BYOND software
suite. One popular rumor supposes that their names are actually Dan and
Tom, but myth and legend have no place in this glossary.
data object is an object which has no "physical" appearance in the
world. Otherwise, the object is an atomic object.
datum is a data object. For esthetic reasons, the plural of datum
in BYONDish is datums (rhymes with atoms). Either that, or the plural of
atom is ata (rhymes with data).
debug means to remove errors from the code. When done in the right
frame of mind it is thrilling. And sometimes it is like pulling out
porcupine quills--even in the right frame of mind.
derived type is a data object type which is defined as a child of
another one, and which therefore inherits all the properties of the
parent type.
designer is another word for programmer, though it also includes
people who design maps, icons, music, etc. Some people use the term
god, but I have always found this too overt for my tastes. Yes, the
designer is playing god but that's supposed to be a sort of secret, a
private megalomania that is spoiled by dragging it into the open.
dialogue is a window which pops up to get some kind of input from the
user.
DM stands for Dream Maker. It may refer to the language, or in a game
it may refer to a designer or super user.
download means to transfer a file from the server to the client. For
those of you who use ftp, this is also known as getting the
file.
embedded expression is code which will be evaluated at run-time and
the result inserted into a text string.
escape means to put a special character in front of a symbol so that
it will not be treated in the usual manner. As in many computer languages,
the escape character in DM is the backslash. For example, one might escape a
newline, causing the compiler to skip over the end of the line as though the
next line were joined to it.
expression is a piece of code which produces a single value (such as
a number, text string, object, etc.). An expression can be a simple
constant or may include variables and operators.
file system is the set of all files available on a computer. Each
file is located at its own path in the file system.
flag is an optional value which alters the meaning of something
else. An examples is a gender flag in somebody's name.
format macro is a special code inside a text string which is not
displayed literally but which instead has some special effect like making
the text bold or red.
game object is an object derived from mob, obj, turf, or area. These
are the "physical" objects which comprise the world seen by the player.
All other types of objects are called data objects.
global means to have an effect on the entire body of code. For
example, a global variable is accessible from anywhere in the code. This
term is used to distinguish from local effects, which have a limited
scope of influence. Global also implies permanent duration. For example, a
global variable can be defined inside a procedure, in which case it only
applies to the code within that procedure but still maintains its state from
one call to the next.
hard-coded means behavior which is built-in or pre-defined in the
BYOND system. Most things which are hard-coded are just defaults which can
be overridden by the designer's own code. However, some things are
hard wired, meaning they cannot be configured.
indentation is composed of tabs or spaces at the beginning of a line
of source code.
inherit means to possess all the attributes of a parent object type
by virtue of being derived from it.
input is information from the player. This may take the form of a
command (composed of the verb and its arguments), mouse clicks, or keypad
buttons.
instruction is a basic element of the procedure language. The syntax
for using them is very much like calling any other procedure except that
they are built into the language.
key is a unique identifier used to associate an avatar with a
player. It is also often used as the name of the avatar. The key name is
still unique when stripped of all punctuation and converted to lowercase
just to avoid any simple confusions between people. Keys may be stored
locally by the client or they may be accessed over the network from the
account server (a so-called roving key).
key file is a save file attached to the player's key. It is
typically used to store player information which will be accessed by
whatever world the player connects to next.
lag is any unintentional delay in input/output. It can be caused by
an overloaded network or server machine--referred to, respectively, as
network lag and server lag.
library file is a code file designed to be included in other projects
as a sort of plug-in component.
link can mean to connect two worlds over the network (see
network). It can also refer to a clickable word or words embedded
in text output (also known as hypertext). When the player clicks the link,
the client accesses the URL associated with it.
local address specifies the location of a server or byte code file on
the same machine as the client (or accessible as though it were). This is
different from a network address which specifies the location of a
BYOND world running on another computer. The local address takes the form
of a port number corresponding to a server, or it is the path to a
file. When the client accesses a file directly, it is run directly in the
client--the so-called local server. This server may open a
network port for access by other clients. The port is specified
after a colon following the file name, or it defaults to the "default-port"
configuration setting.
local host is another name for the computer being used. It can be
explicitly entered in a network address (e.g. BYOND://localhost:6000)
but this is normally shortened to simply the port number (6000).
local port is a special port which may only be accessed by the client
which is running a world. In other words, it is not a network port at all
but a channel of direct communication between the client and an internal
server. Whether this local server opens a network port or not is
determined by the "default-port" configuration setting.
local server is a server internal to the client. When the client
directly accesses a world file, it runs it in the local server and accesses
it directly via the local port. Whether this server also opens up a
network port for access by other clients is determined by the
"default-port" configuration setting or by the specification of a port
number in the local address of the file.
local variable is a variable defined inside an object, procedure, or
block of code and which therefore only has an effect within that scope.
log in means to connect the client to a server and associate the
player with an avatar (or mob).
log out means to disconnect a client from a server.
macro is a word which stands for something else. A preprocessor
macro, for example, is replaced by its value wherever it occurs in the code.
mob stands for mobile object. These are typically used as the
base object type for defining NPCs and PCs (that is all the animated
creatures) in the world.
MUD stands for Multi-User Dungeon. A traditional MUD is a text-based
role playing game consisting of a number of rooms populated by various
monsters and treasure.
newline is the ASCII character which terminates one line of text so
that the next character begins on a new line.
network as a noun refers to a collection of computers communicating
with one another. This usually refers to the Internet, but could refer to
an isolated local area network (LAN). The BYOND system requires a network
using the TCP/IP protocol. As a verb, this term often refers to the process
of running two or more worlds that players may move between as though it
were one seamless world.
network address is the information necessary to connect to a server.
This includes the address of the computer on which the server is running and
the server's individual port number. To distinguish different types
of servers, a protocol name may also be specified. An example would
be BYOND://dantom.com:6000. The first part is the protocol
BYOND (which is not case sensitive) followed by the machine name
(dantom.com) followed by the port number (6000). If the
server is registered with the central Dantom directory, the name of the
server may be substituted for the machine name and port number. For
example, if the server is registered as dantom its address would
be BYOND://dantom. Since the client assumes the BYOND
protocol by default, this may be further shortened to simply dantom.
network port is a number conceptually like a phone
extension number in an office building. The whole building may have one or
more outside lines which are accessed by dialing the corresponding telephone
number, and individual phones within the building may be accessed by dialing
an additional extension. The building is the analog of a computer on the
network which has one or more network addresses, and the phones are
individual network programs (servers) which can be contacted through their
respective ports. The full address of a server includes the network address
of the computer followed by a colon followed by the port number.
node is a general term for the end of a branch in the code tree.
These generally have a name to distinguish them from other sibling
nodes and may have any number of child nodes.
NPC is a Non-Playing Character (or Creature). These are generally
represented by mob objects.
null is a special "empty" value. In a numerical expression, it
behaves like zero. In a text expression, it behaves like an empty text
string. In a boolean expression it is false. Uninitialized variables start
out being null.
obj is a basic object type most often used for inanimate items. It
appears on top of turfs and underneath mobs on the map.
object is an entity that exists in memory and is comprised of a set
of variables and procedures that are defined in the source code. It may be
either a game or data object, depending on whether it has a "physical"
manifestation in the world.
operator is a special symbol that performs some basic action like
adding two numbers together. Operators are usually formed from one or
more punctuation characters.
output is any information sent to the player. The client is
basically a program for presenting output from a world to the user.
override means to redefine the contents of a
procedure (usually in a derived type). The overridden procedure is
known as the parent proc.
parent node is the node in the code tree containing the one under
consideration. It has the symbolic name .. (two dots).
parent proc is the procedure which is being overridden by the one
under consideration. It has the symbolic name ..().
path is a sequence of node names indicating the location of a
particular object type. It may also refer to the location of a file in the
file system, in which case the nodes are called directories. In either case
it specifies how to get to a position in an informational tree. See
absolute path and relative path.
PC is a Playing Character. It generally refers to the player
and avatar together rather than distinguishing between the two.
player is the (presumably) human being who controls an avatar
in the game. The two are associated by the player's key. Another
synonym for this is user.
port see network port.
preprocessor is a preliminary part of the compiler which reads the
code first and carries out any special commands to alter what the next stage
of the compiler sees.
proc is a procedure that does not appear as a player command. In
other words, it is not a verb. Some pre-defined procs are called by the
server. All others can only be called by the code. For some reason the
word is pronounced "prok" and never "pros". Or maybe there is no reason.
procedure is a sequence of statements to be executed when the
procedure is called.
prompt is the text next to the command line, or some other entry box
which indicates what is expected from you. For example, at the
server prompt you are supposed to enter the address of a server, and
at the prompt with the same name as your avatar, you issue commands to the
avatar.
protocol specifies a particular form of communication over a
network. At a low level, the TCP/IP protocol is used to transmit data. The
format of that data, however, is governed by higher level communication
protocols. A BYOND client and server communicate using the BYOND protocol.
A web browser and server use the http protocol. For more information, see
the glossary entry for network address.
realtime means executing events on a timed schedule rather than
simply doing them as fast as possible. This often involves making a
procedure go to sleep in the middle of execution until it is time for
the next step.
relative path is a path in which the starting location is the current
node or directory. See absolute path.
resource cache is a file (ending in .rsc) which contains
resource files. The server-side cache contains all the resources associated
with the world. The client-side cache contains all the resources recently
accessed by the client. These are automatically downloaded if necessary
from worlds the client connects to.
resource file is an icon, sound, or other such file to be displayed,
played, or output to the user.
rogue-like map is a map which uses a grid of text characters to
represent the view rather than graphical icons. This derives from the
grandfather of computer games, rogue, which in turn gave rise to
hack, nethack, moria and numerous others. People
generally fall into two categories: primitive people who only use advanced
interfaces, and advanced people who only use primitive interfaces. As much
as possible, BYOND seeks to satisfy everyone by providing graphical
and text map capabilities, mouse and command-line control, and
so on. However, if I had my way, the primitive interface would rule.
Muahahahaha!
room is an area that is not on the map. These are like the rooms in
a traditional text-based MUD.
room-based world is one having no map but instead consisting of a
number of interconnecting rooms.
root is the "top" node in the code tree (and also in the file
system). It has the symbolic name /.
RPG is a Role-Playing Game. The driving force behind the development
of BYOND has always been role playing, but since that is such a general
goal, many other possibilities have emerged.
run-time is the time during which the world is running in the
server. A run-time error, for example, is one which happens during the
execution of the code. This term is normally used to distinguish from
events which occur at compile-time.
save file is a special type of file used to store information about a
world. The most common use is to record player information which needs to
be retained from one login session to the next. A save file may be
server side or client side depending on whether it is stored
in a file on the server's machine or if it is attached to the player's key.
server is the program that runs the game, carrying out the
instructions in the byte code which describes the world.
sibling is a term used to describe the relationship between two nodes
having the same parent in the code tree.
sleep means to halt execution for some specified length of time or
until some action has completed.
source code refers to the text in .dm files which is written
by the programmer and read by the compiler. It is stored in a plain ASCII
format and is normally edited using the compiler's built-in code editor, but
may be created by any text editor.
statement is a single complete command in the procedure language. It
could call another procedure, perform an assignment, and so on.
string see text string.
super user is a player with special powers to help run the game.
See DM or designer.
terminal refers to the text output window in the client. The
sequential scrolling output is similar to a terminal device. If you have
ever used telnet then you know what that means.
text-based world is one having no graphics and (typically) no sounds
or other "multi-media" components. In some cases the world may still have
a text-based map (also known as rogue-like), but usually the world is
also room-based. Some people (including this author) actually enjoy
the atmosphere of a text-based world, not only for feelings of nostalgia, but
for the same reason some stories are better as a book than a movie. Text
can be a richly imaginative medium.
text string is a sequence of ASCII characters, possibly containing
special format macros and embedded expressions. A text
string is often just called text but some programmers persist in
calling it a string instead.
tick refers to a unit of time during which nothing happens, followed
by some action. For example, one might have a slow "repop" tick which
repopulates deceased monsters in the world every so often. The server
itself processes realtime events by ticking.
topic part of a URL. It is a piece of text identifying some resource
or action within a world. It is inserted in the URL after a "#" symbol.
If no other network address is specified, the topic is accessed from the
world to which the client is currently connected. An example would be
BYOND://dantom#hub, where the topic is hub.
turf is a basic object type representing individual squares on the
map. They appear on top of areas and underneath objs and
mobs.
upload means to transfer a file from the client to the server. For
those of you familiar with ftp, this is also known as
putting the file.
URL stands for Uniform Resource Locator. This generally specifies a
protocol to use and a network (or local) address specifying the
location of the resource. In the context of BYOND, the resource
being accessed is a server running a BYOND world. In addition, a
topic may be specified as part of the URL. This accesses some
resource (or triggers some action) within the world. For more information,
see the glossary entries for network address, network
port, and topic.
verb is a procedure which may be called by the player in the form of
a command. It may take any number of parameters which are known as
arguments.
world is a term used to describe the virtual environment created by a
DM program. It should really be called a dream to be consistent with
BYOND and DM, (but I don't call it that and probably neither will you).
This is often used as a synonym for server but may also refer to the
byte code (.dmb) file, or the source code, or all of those combined.