SDK World Server Administration
Version 3.1 of Active Worlds introduced a new version of the Active Worlds Server, and a new series of SDK methods to administer the server. The new methods are:
- aw_server_admin
- aw_server_world_add
- aw_server_world_change
- aw_server_world_delete
- aw_server_world_list
- aw_server_world_set
- aw_server_world_start
- aw_server_world_stop
- aw_server_world_instance_set
- aw_server_world_instance_add
- aw_server_world_instance_delete
The primary new feature of the 3.1 world server is that a single server process can now host any number of worlds. If you are currently running multiple worlds on a single machine, you no longer need to install and run a separate world server for each world. A single 3.1 world server will run all of them.
To make administration of the new world server easier, the 3.1 world server ships with a new Administration GUI program for Windows. This program is actually just an SDK program written using the new methods above. These methods have been provided in the SDK so that developers can implement their own custom administration tools for world servers.
Using the world server administration methods
Version 3.1 of the SDK introduces the new concept of an administration mode instance. Administration mode instances (or "admin instances" for short) are created using the aw_server_admin method instead of aw_create. Admin instances have access to the world admin methods whereas "traditional" SDK instances (as created by aw_create) do not. Likewise, admin instances are not "bots" in the traditional sense and thus do not have access to many of the standard SDK methods. Also, traditional instances always have a connection to the universe server and optionally a connection to up to one world, while admin instances have no universe server connection and exactly one connection to a world server.
In addition to the admin methods listed above, an admin instance also has access to the following methods:
- aw_cell_next
- aw_delete_all_objects
- aw_object_load
- aw_query
- aw_query5x5
- aw_terrain_next
- aw_terrain_delete_all
- aw_terrain_load_node
- aw_world_reload_registry
- aw_world_attributes_change
- aw_world_attributes_reset
Note that if an application needs access to functionality from both the admin and non-admin SDK methods, this can be accomplished by writing a multi-instance application, with one admin instance and one or more non-admin instances.
A single world server can have any number of admin instances connected to it simultaneously, either from the same program or from multiple programs on the same or separate host machines. Changes enacted by one admin instance will be communicated to the others via the AW_EVENT_ADMIN_WORLD_INFO event, or the AW_EVENT_ADMIN_WORLD_DELETE event if a world is deleted. A proper administration mode application should be prepared to respond to these events at any time and update its own internal state appropriately.