Current edition:
Vol.3, No.7, July 2000

Active Worlds News

We're Hiring
Report Cards
Get A World!
Bot-of-the-Month Club
Tech Support Tip Of the Month
Flagg's Worlds To Watch

Community News

Hot Spots to Visit!
AWEC Calendar
2000 Reunions
Fireworks in A'tuin2
Festival 2000
D & D in AW!
Tips & Tricks
Romance AW Style
Get To Know Your Neighbors
AWEC Email List
Don't Crack!
Cy Committee!
Party in AWTeen


Building Links
Community Links





Banner 10000021





Bot Of The Month Club

This month we get to learn more about Magine's general-purpose programmable bot, called Magsbot (or MBot or MB). It's "table driven" - so you don't need to be a programmer to write your own bots. However, it provides an extensive set of functions, so it is very powerful, and has many capabilities that you can use as you learn more about how bots work, and what you can do with them.

Hamfon & The Hambots

Magine's bot has been around for quite a long time - it is one of the earlier "general purpose" bots - so it has had time to mature and develop its feature set. Below, Magsbot, as described by Magine:

The intention behind Magsbot was to make an expandable, all-purpose bot that could be easily programmed for whatever behavior the user had in mind. While this is possible with several of the popular bots out there, I feel that MB is easier to use since behaviors can be quickly tested and changed "on the fly" without having to reload an entire script and restart...sort of a "bot interpreter." The basic functionality is built-in, so you only need to write small snippets of instructions rather than a whole script. If you just want a chat bot, seed bot or survey bot, those capabilities are already there too.

The basic concept behind MB is the user-editable "Behavior Table", a grid containing descriptions of Events that the bot should respond to and Actions (bot commands) that describe the bot's response. MB's abilities can also be expanded through user-defined buttons with lists of bot commands attached. Or, the user can enter "immediate mode" commands for the bot to carry out at once. All of these methods use the same simple but extensive language with over 150 commands controlling every aspect of bot hehavior, program flow and data manipulation, such as movement, chat, building, surveying conditionally, teleporting or warping the bot or other avatars, assigning variables or managing lists of variables, as well as programming commands such as IF, WHILE, SWITCH and error trapping. Pretty much every Event and Method in the SDK (except those restricted to Universe owners) is supported by MBot!

As an example, a simple "paintball" bot could be created just by entering these commands into the table:

The "Active" column merely allows you to deactivate a particular row of the table temporarily, if desired. The $atr function returns the value of an AW Attribute.

With the above instructions in the table, any avatar that is clicked on within the bot's presence would be warped to Ground Zero of that world. You could expand on this a bit to provide a "safe zone" near Ground Zero and also keep score:

The @atr function is like $atr except that it returns a number instead of a string. The double-pipe symbol "||" means "or", and the "&&" means "and".

The added part describes conditions that must exist for the associated Action to take place: i.e., the clicked-on avatar must be outside a 2000x2000 area around GZ. (MBot uses SDK coordinates, so 2000x2000 would be between 1N and 1S, 1W and 1E.)

The @v_ function returns the value of the variable with the specified name, or a 0 if the variable doesn't exist. You can also refer to variables directly, but using @v_ allows the variable name itself to be a variable!

Three more commands have been added to the Action. The second command creates a temporary text string $x, composed of "score:" + the name of the person doing the clicking. The next command assigns a value to a global (i.e. permanent) variable, using the "score:avname" string as a name for the variable. The value it assigns is the current value of the "score" variable + 1. Finally, the bot reports the new score using a formatted output function.

To check the score, you could create a user-defined button (just right-click on MBot's Actions panel to make a new button) containing this command:

$s=$pick["Current Score","@score:"]

The $pick function causes a window to appear containing a list of all variables with the specified prefix. Whatever variable in that list that the user selects by clicking, is returned and stored in $s; in this case we're only using $pick to show the list, so $s isn't used, but you have to assign the result to something. The $pick window would look something like this:

Variables are (by default) stored in a file when MBot quits, so the scores would be preserved between sessions automatically.

For people who aren't into programming, I've provided a standard Behavior Table and many already-defined Action Buttons with MBot. The standard table includes responses to whispered commands to "come", "follow" or "stay", for example. Included buttons allow you to set and return to bookmarks, record and playback movements, and many other features. If someone has a good idea for a bot feature, they can email me and I'll try to add a button or Behavior Table entry for it! (But no telegrams, please!)

Some other things MBot has been used for:

  • As a greeter that also keeps track of how long it's been since a given visitor has been there, and greets appropriately. This is in the standard Behavior Table, but can be deleted or turned off if desired.
  • As a building tool, to create lists of objects to be deleted or duplicated, based on builder, time of creation, model name, or any other specification that can be determined by survey. For example, the command SURVEY @eq[$left[$atr[OBJECT_MODEL],4],"walk"] would survey only for objects whose names begin with "walk".
  • To control lighting effects in A'tuin2.
  • To mediate an Easter Egg Painting event in A'tuin, allowing visitors to color and assign pictures to egg objects there.
  • As a Librarian that indicates where to find requested information in Librarea world.

What's next for MBot? In planning is an actor bot that records and replays avatar movements, gestures and speech to give a performance; and a ghost hunt game for A'tuin2 in October.

MBot can be downloaded from my web page , or you can email me.



Active Worlds   |   Newsletter Home   |   Newsletter Archive   |   Contact Us