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.