Current edition: Vol.6, No.1, January 2003

Active Worlds News

Worlds to Watch
Tech Support Tip
Bot of the Month
Terrain Editor
Hot Spots to Visit
Volunteer Highlight
AWRPG Preview
AWEC Calendar


Building Links
Community Links










Bot of the Month Club

Courtesy of Magine

Scavenger Hunt Bot

Creating your own scavenger hunt game is easy, using this Magsbot program. The latest version of the scavenger hunt bot uses the database capabilities of Magsbot and takes advantage of relatively recent changes in the SDK that allow a bot immediate access to a clicked object's data, without the need for a preliminary survey. The new "global mode" also allows a single bot to monitor a game for an entire world, unlike previous versions that required several monitor bots to cover the game area.

In the game, players talk to the bot who tells them the list of objects to find, somewhere in the world. The bot will also give hints to the players when they ask for them. When a player finds one of the objects, they click on it to "pick it up."  When any player successfully finds all the objects, that player is the winner.

The Story

An interesting game depends a lot on the story you create for it. The original scavenger hunt in A'tuin was a Halloween-themed game in which players collected items for Hagsbot the witch to make her brew. Her invisible familiar Tickles (actually several bot instances stationed in locations throughout the world) supervised the hunt and told players when they picked up the right object. To return a found item to Hags, players clicked on her cauldron.  The next version of the scavenger hunt was the Treasure Hunt 2 in A'tuin, where players searched for keys with which to open the fabled Twelve Lock Box of pirate treasure. In that game, Long John Silver was the "referee" that gave clues and his parrot Polly was the "monitor" bot that told players when they found a key. Once a player had all the keys, they clicked on a treasure chest model to win.

In the most recent, simpler version of the scavenger hunt, only one bot instance is needed, ideally running in "global" mode, if bot owner has world caretaker rights. (Or, you can just keep the hunt within a smaller area so that a non-global bot can detect all the player clicks on items.) Also in this version, there is no "dropoff" object that players need to click to deliver items; instead a player only needs to collect all the items in order to win immediately.

Setting it up

The scavenger hunt bot consists of a set of behavior and custom button files that are used with the basic Magsbot program. After installing Magsbot, merging the files and adding some customizations to the user-defined macros file, you are ready to create your game simply by editing the game database.

Magsbot uses the ADO (Active Data Objects) system, that allows it to use many different kinds of database simply by setting the proper connection strings, either in the Magsbot .ini file, or using commands within a Magsbot program. If you're using Windows XP, then you probably already have the ADO drivers on your computer; but if not, you can download them from Microsoft's web site for free. The scavenger hunt bot uses an MS Access database that is provided with the other necessary files, and this database can be edited from within Magsbot.

The scavenger hunt database contain two tables: a Players table containing player information and inventory, and a QuestItems table that contains all the information for the items that players search for. Customizing the game involves setting the fields of the QuestItems table with the item names, hints and prerequisites that a player needs to meet before picking up the item, as well as actions for the bot to take when the object is picked up.

Hiding the treasure

Once the database is set up, you need to create the objects in your world. Associating an object in the world with a database entry involves simply adding qkey=n to the action field of the object, where n is the item number as given in the game database. When a player clicks the object, the bot detects the click, and looks up the data for that item according to the qkey tag. The bot also updates the Players database for the individual who clicked the object, adding it to their inventory—assuming that the item requirement specified in the database is met.  An item requirement would, for example, require that the player had already obtained some other object. Any actions in the Magsbot command language can also be specified in the database to be carried out when a given item is picked up.

Need a clue?

Besides maintaining player data, the scavenger hunt bot will also respond to player requests for hints that you've put in the database. (Writing the hints is my favorite part of setting up this game!) It will also list the items that a player still needs to find, when they ask.

Future enhancements

Another idea that I've had for the scavenger hunt bot, that I wasn't able to add in time for this article, is to have the bot respond to a more extensive set of tags that would be placed on game objects. By using this method, the item requirements and actions could be moved out of the database and onto the objects themselves, decreasing the amount of database access required and allowing multiple game designers to work together in a world to create a game, in the same way that we enjoy cooperative building.

You can download Magsbot from my web site here, and the scavenger hunt files (including more detailed installation instructions) here.



  Active Worlds   |   Newsletter Home   |   Newsletter Archive   |   Contact Us    |   Disclaimer