Codebase: ActiveWorlds 3.6
The ActiveWorlds codebase is designed to offer a foundation for graphical multi-user worlds. Uniquely, it offers two modes:
Galaxy Server: Gives you the basis for a single world, with its own client software and installation package.
Universe Server: These are unique collections of worlds from different owners, all stored together under a single client, allowing users to navigate freely from one world to another without exiting out of the software.
A universe server or uniserver can hold 1,200 worlds comfortably, and several of these hubs currently exist.
Pay for Space
An ActiveWorlds world consists of a grid of cells, each 10m on a side. The number of cells your world has is determined by the 'P rating'. A P1 is four cells; at the centre you are only one cell away from the edge. A p5 is a square of one hundred cells; at the centre, you are only five cells in a straight line away from the edge - or 50 metres. Common world sizes are P5, P10, P20, P30, P40, P50, and P100. However, any size up to P32,000 will be supplied. By the time you reach that size, you are talking a medium sized country.
As you might expect, the number of cells increases logarithmically as the P number increases. The price of the world also increases in line with the P size.
Size of world is not the only cost for an ActiveWorlds based world. ActiveWorlds will charge for the number of concurrent users your world can have. The default is five, but you can purchase licenses for additional concurrent users in packs of five. Thus you can have 10 users in your world at once, or 15, 20 by the time you reach meaningful numbers for a commercial world, you are in the realms of silly money. This, unfortunately means large-scale commercial projects are best looking elsewhere.
Cells and RWX
As covered earlier, ActiveWorlds worlds are made out of a grid of cells. This grid is 2D, there is only one plane of cells. Cell corners can be raised or lowered as of codebase 3.6, allowing a crude terrain to be formed. Additionally each cell will take a separate texture file, which can be any thing you desire, or alternatively, the cell can be turned into a 'hole'. Holes function like ordinary cells, except they are transparent and you pass straight through them.
Each cell serves as a micro database with a set limit of characters. Within the cells, *.rwx files can be placed. These are scripted instructions for creating and texturing 3D objects. It does not matter how complex the rwx file is, all that matters is the filename: house1.rwx uses 10 characters, regardless of the complexity of the script that creates it.
However, once placed, the rwx can be modified by AW Action scripting which can be typed into the properties box for that instance of the rwx file - called an object.
Action scripting allows a wide variety of special effects to be added after the fact, with different instances of the same rwx file having different action scripts.
However, action scripts come with a price. This script is added to a door object to make it rotate when clicked with the mouse:
'activate rotate 0 0 15 time=1 wait=3'
This script is 36 characters long, and this adds <I>directly</I> to the cell's character count, so the more scripting you add, the less each cell will hold.
ActiveWorlds worlds are designed to specification, and compiled before they are given to the client. Each world has a lifespan of one year, after which a new executable is sent out, making extending the code directly, next to impossible.
All is not lost, ActiveWorlds is designed to be extended. This is done via bots.
A bot is an agent, which can bolt onto ActiveWorlds. Not as efficient as a plugin, bots use the ActiveWorlds SDK to add as much functionality as is desired, at the cost of execution speed. They are essentially external programs, which are permitted to override different aspects of the ActiveWorlds server.
ActiveWorlds is limited. Both the server and the client demand Microsoft Windows to function. Extensibility is solely by external program, and pricing is often exorbitant. Most damning of all, ActiveWorlds is not designed to be a collaborative environment, so doors opened or objects activated by one person will not have their effects seen by any other visitors.
However, all that said, ActiveWorlds is a way of rapidly deploying a VR environment. It is ideal for art projects and creative masterpieces, static backdrops and sets. The universe servers allow many different worlds with different themes and audiences to pool communities and attract visitors from one another.
Bots may be slow, and inefficient but there is a massive archive of previously made bots, and scripts to control them. All of this code and scripting is near-guaranteed to work, as the codebase is standardised.
Many friendly veterans of the codebase exist, and hang around the universe servers. Most are often willing to impart knowledge free to new users.