ID:180948
 
Just a repost of the FAQ into the new forum :). As always, send me anything you'd like added or changed.



BYOND - FREQUENTLY ASKED QUESTIONS (FAQ) v.0.4

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:

How...
How do I use the program to connect to other games?
How do I use the program to make my own program or game?
How do I compile my code?

What...
What commands are available for coding?
What is an area for?
What is a mob for?
What is an obj for?
What is a proc?
What is a turf for?
What is a verb?

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

Why...
Why use BYOND instead of another programming language?

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?

Does BYOND...
Does BYOND support Isometric views?



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

1. Open DreamSeaker(DS)
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 do I use the program to make my own program or game?

1. Open DreamMaker(DM)
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 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.


What commands are available for coding?

1. Open DreamMaker(DM)
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 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 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 & Demo's section. Included are Demos, Sample Libraries, Code Snippets, Tutorials and Links to other web sites concerning BYOND.


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.


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.


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.
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).