ID:180943
 
Here's the latest version, prone to errors so feel free to post or email the corrections.

For addtions or corrections, I'm avoiding the use of a lot of links. I'd rather not have a link dead document floating around if a page closes or moves.

Not too much longer until a full version :). Thanks to Spuzz'man for most of the new entries.



BYOND - FREQUENTLY ASKED QUESTIONS (FAQ) v.0.5

This document was released on July 29th, 2000.
Statement of Purpose:
This is a living document. The purpose of this document is to help answer many of the common questions that are asked by those new to BYOND which the web site, forum, manual and other sources either did not mention, or are not utilized. This is not a replacement for the resources that are currently in existence. The help, tutorial and manual files can answer most any question that is frequently asked with much more detail than this document.

Disclaimer:
This document is not an official Dantom publication. It is maintained by the users of BYOND and should be considered "unofficial". This is for all those would-be reporters that like to quote things. When ever it is possible, the information contained within this document is checked by the designers of the product to ensure the validity of it's content.

Version Notes:
If the version is a full number (1.0, 2.0) then this document had been checked by all the authority possible at the time of it's release. All other version numbers should be considered a work in progress. To submit changes, fixes or additions please contact Gabriel (by e-mail).

References:

BYOND Homepage
DreamMaker Guide & Code Reference


Contents:

Can I...
• Can I Really create a chat server in two lines of code?
• Can I create an object that is larger than a single tile?
• Can I load a map at runtime instead of at compile time?
• Can I make areas where the turfs on lower z levels can be seen?
• Can I change the map and edit the .dm files while the program is running and have the changes take affect without having to shut down the server and recompile everything?

Does BYOND...
• Does BYOND support Isometric views?
• Does BYOND support graphic meters?
• Does BYOND support sound?

How...
• How do I compile my code?
• How do I use the program to connect to other games?
• How large can a map be?
• How do I use the program to make my own program or game?

What...
• What can BYOND do with its integrated browser?
• What commands are available for coding?
• What is an area for?
• What is a .dm file?
• What is a .dme file?
• What is a .dmi file?
• What is a .dmb file?
• What is a .dmp file?
• What is a .dms file?
• What are icons, icon states, overlays or underlays?
• What is a mob for?
• What is an obj for?
• What is a proc?
• What is a .rsc file?
• What is a turf for?
• What is a verb?

Where...
• I'm a newbie, where do I get started?
• Where can I find sample code or tutorials?
• Where can I find some worlds or games to log into?

Why...
• Why are there so many patches and updates?
• Why use BYOND instead of another programming language?



Can I Really create a chat server in two lines of code?

Yes.

    mob/verb/say(T as text)
        world << "[usr]: [T]"

Can I create an object that is larger than a single tile?

No, though you can tie multiple objects together or create an image of an object that is larger than a single tile. The main difficulty is with actually tying together the multiple objects so that, if one of them moves or turns, the others will react in a similar way. This would basically be like a train. Design the engine which actually pulls the other cars along. If all you need to do is create an image that appears to span multiple tiles, this can be done easily through the icon editor.


Is there a way of loading maps at runtime instead of at compile time?

There is no in-built feature that allows you to do this. Actually loading the .dmp files during runtime is not currently possible.


Can I make areas where I can see stuff on a lower z level?

Yes, it's just a matter of coding it. The openAir snippit found in the Code & Demos section on the BYOND Homepage provides an example of how to do this.


Can I change the map and edit the .dm files while the program is running and have the changes take affect without having to shut down the server and recompile everything?


Does BYOND support Isometric views?

The BYOND mapper is a 2-D display using a coordinate grid map. Isometric graphics are 2-D graphics drawn to represent a 3-D image, usually shown at a 30 degree angle. BYOND can easily show these images, but does run into some issues when coordinating movement due to the grid. As an example:

A wall that cuts at an angle and only uses a portion of a grid-square will still stop movement at the edges of that grid and not at the edges of the wall.
This can normally be overcome by designing the graphics to the edge of the grid, but not always possible in order to keep the image the way that you'd like.

Is there a way to display meters instead of numbers?

Yes, it's just a matter of coding it. The Meter snippet found on the BYOND Homepage in the Code & Demos section provides an example of how to do this.


Can BYOND play sounds?

Yes, though it is currently limited to one WAV channel in addition to playing MIDI on the client side.


How do I compile my code?

Ensure that you have an environment open. If you have never created an environment:

1. Open DreamMaker(DM)
2. Click File/New Environment... from the menu.
3. Choose the location where your code file(s) exist.
4. In the browse pane on the left click on the check box next to your code file.
5. Click Build/Compile from the menu.

If you have an existing environment, simply open the environment and ensure that:
a. The code files are there and checked in the browse window.
b. Check the bottom window for error messages during compile.

This document is unable to address all the error messages you may receive during compile. If you believe there is a bug with the software, visit the BYOND Homepage and register a bug report. Attempt to reproduce the problem with minimal code and include any relevant information. Also check to see if there are any updates that address your issue. You might also check the Forum to see if it's a known issue.


How do I use the program to connect to other games?

1. Open DreamSeaker
2. Click on Help/General... on the menu

The information provided in this file describes general usage of the program and it's components.


How large can a map be?

The maximum map size is 1000x1000x1000 (1 billion coordinates). This is very generous since most modern day computers do not have the processing power or the RAM to utilize this large of a map. It's generally considered better to create smaller maps and link them together. A good start would be around 100x100x5 (50,000 coordinates) and experiment from there. How large to actually make your maps is a design question that should be based on the needs of your program and the capability of your computer.


How do I use the program to make my own program or game?

1. Open DreamMaker
2. Click on Help/General... on the menu

The information provided in this file describes general usage of the program and it's components.


What can BYOND do with its integrated web browser?

The browser within BYOND utilizes Microsoftฎ Internet Explorer components. It has much of the same capabilities as Internet Explorer when viewing the WWW, though sending information from BYOND to the browser is more limiting.

You can use BYOND as a type of CGI, allowing users to modify or create dynamic pages. This can be of use when creating forums or as a means of editing existing information within BYOND. The SubmitLink library available from the BYOND Homepage, Code & Demos section provides functions to do this.


What commands are available for coding?

1. Open DreamMaker
2. Click on Help/Help On... on the menu

The information provided in this help file is cataloged and searchable for easy reference. It contains all of the syntax, built in functions and commands that can be used to create your own program.


What is an area for?

Areas are general regions in your world. If you cover a region on the map with the area "town", then all of the turfs in that region will be considered to be in "town". Areas have many practical uses, like starting locations. They are favorable to using turfs in some circumstances because instead of executing a proc for every turf (a large sum), it executes a single proc for the area encompassing all of those turfs. See the section 1.2 in the guide for more information.


What is a .dm file?

DreamMaker Files are your source code for your world. They contain all of the information that tells DreamMaker how to make your game into what it is. These are ASCII text files, so may be opened in any text editor, though DreamMaker is by far the easiest to use to edit them. Consult the Dream Maker documentation for more information on how to use the Code Editor.


What is a .dmb file?

DreamMaker Binary File. These files are the compiled code. The DreamDaemon uses these files to launch and run programs. Since they are in binary format, they should not be edited directly. Instead, the source code should be recompiled with any changes that you'd wish to make.


What is a .dme file?

DreamMaker Environment File. These are your environment files. They tell the compiler what to look for in your file system, how to find it, and then to include it or not. If you are familiar with C++, these are very similar to header files. In all but the most exceptional cases, these files should not be edited manually.


What is a .dmi file?

DreamMaker Icon File. Though BYOND doesn't require graphics, many BYOND programs do use them. The icon files contain any icons or graphics that are used. They contain all necessary information about an icon and can include static "pixmaps" or animated "movies". They also have multiple icon states which can be set at runtime. Consult the DreamMaker documentation for more information on how to use the Icon Editor.


What is a .dmp file?

DreamMaker map file. These files are created by the BYOND map editor. They contain the nesisary information for BYOND to create coordinate based maps. While it's not necsisary to use .dmp files, the editor provides time-saving utilities which can simplify the process of creating maps. Consult the DreamMaker documentation for more information on how to use the Map Editor.


What is a .dms file?

DreamMaker Script File. These files are used at runtime to set different settings, like button macros and keyboard shortcuts, as well as different varieties of color configurations (by using CSS style sheets). Creating script files is optional, and as of this writing the author is unaware of any major project that utilizes them. They are a fairly new feature. For more information, consult the reference section under client/style sheets and client/macros. These are editable in the Code Editor, so consult DreamMaker's documentation in that section for more information.


What are icons, icon states, overlays or underlays?

An icon is a 32x32 px bitmap which can be displayed within BYOND. Each icon file (.dmi) may contain various other icons refered to as icon states. Overlays and underlays is the process of layering icons. There is a tutorial on how to do this which can be found on the BYOND Homepage in the Code & Demos section.


What is a mob for?

A mob is a moving entity in the world. Mobs, short for mobile objects, can be used for many purposes. In most cases, mobs are used to represent living creatures, but they may also be used to simulate vehicles or anything else. Mobs are exactly similar to objs, except that mobs are pre-designed for movement and general connection considerations. See the section 1.2 in the guide for more information.


What is an obj for?

An obj is used to refer to an object designed to be manipulated by a player. Objs may take any shape, size, or form, including "living" creatures. Generally, objs are used to simulate items that can be carried and various terrain features, as well as all manner of inanimate objects added for spice or for actual significance. See the section 1.2 in the guide for more information.


What is a proc?

A proc is a single process of code. Procs should be the mainstay of any designer's code, as they don't allow players to access them wantonly except when the designer explicitly provides a verb to execute them. This is not to say that ALL actions should be contained in procs; if you design a very short bit of code caused by a user action it is best contained directly within the verb itself.


What is a .rsc file?

Resource Files. These files contain all of the WAV, MIDI, and DMI files compiled into one easily manageable package and compressed. These files may not be directly manipulated. DreamSeeker provides a means to load various resources so individual .rsc files can be downloaded before logging into a BYOND world. [Editor's Note: Does the .rsc file contain the HTML documents as well?]


What is a turf for?

Turfs are the tiles of your world. Turfs normally are simply terrain, but oftentimes they are used to simulate terrain features, such as immobile rocks, trees, and the like. Terrain features are either turfs or objs by designer preference, and aren't limited to either. See the section 1.2 in the guide for more information.


What is a verb?

A verb is a function provided by the designer to allow players to perform actions in their world. The player's mob will usually come with a variety of verbs that they can use. Verbs are normally used to execute internal functions that players can't access directly.


Where can I find sample code or tutorials? (Or I'm a newbie, where do I get started?)

Visit the BYOND Homepage and check the Code & Demos section. Included are Demos, Sample Libraries, Code Snippets, Tutorials and Links to other web sites concerning BYOND.


Where can I find BYOND worlds to log into?

The hub (byond://dantom#hub) is a good place to start. You can also find worlds on the Code & Demos section found on the BYOND Homepage. Spuzzum is currently maintaining list of worlds at Spuzzum's List of BYOND Projects.


Why are there so many patches and updates?

BYOND is currently in beta testing. As of this writing, the current phase is concentrated on bug fixes. There is currently a freeze on adding new features until the bug hunt is done. The designers of the product feel it's better to release the updates as features are added and bugs are fixed instead of waiting. This allows those of us testing the product to ensure we are using the same version as the developers and that the bugs we report and features we request have not already been fixed or added.


Why use BYOND instead of another programming language?

There are a variety of languages to choose from, each with it's own strengths and faults. BYOND provides an easy to use platform to develop multi-user applications. It handles the grunt work of networking, leaving the programmer free to develop applications without knowing how or needing to program advanced socket layers and protocols. A more detailed comparison and feature list can be found on the BYOND Homepage in the Overview section. BYOND is not for everyone, but many users find it considerably easier to use than more traditional languages and programming environments.


This document is covered under the Intellectual Property and Copyright laws of the United States by it's authors. Permission is granted to reproduce in it's entirety or in parts, so long as credit is not claimed and it's used for non-profit purposes. To submit changes or additions, please contact Gabriel (by e-mail).
On 7/28/00 10:35 pm Gabriel wrote:
[Editor's Note: Does the .rsc file contain the HTML documents as well?]

Only if you put them in single quotes, 'file.html'. Normally, though, you have to put the html files in the same directory as the program, then call them in double-quotes, "file.html".

(too lazy to put my tag), Spuzzum