Open Source Platform
for interconnected virtual worlds

Getting Started with Taiga

From Rex community wiki

Contents

What is Taiga 0.1.3?

realXtend Taiga is a virtual world server set, that has based on the ScienceSim project. Taiga 0.1.3 opensim version is 0.6.9 postfixes. There are two main modules that makes Taiga differ from a normal OpenSim server.
  • ModRex - ModRex is important to the OpenSim community mainly because, like the base opensim code base itself, the RealXtend viewer is open source and breaks away from some of the key contraints imposed by the LLviewer, such as inability to create meshes, shadows, realistic avatars, and advanced lighting effects. ModRex while not part of the viewer, is the glue that connects the viewer to the opensim trunk code. For more info visit the OpenSim Wiki page of ModRex.
  • ModCableBeach - Implements the ROBUST inventory and assets grid services. It also brings new features on top of OpenSim as webdav inventory/avatars and OpenID authentication.
Notes: Some modification has been made to the OpenSim UserServer by the ScienceSim and the realXtend projects. ScienceSim had to modify it due it's not mature enough for ROBUST so its run outside the ROBUST server with slight modification to the behavior. RealXtend project modified the login paths to enable realXtend type authentication.
OpenSim logo

Frequently Asked Questions About Taiga

Q: Why is there no FAQ?
A: What kind of a stupid question is that? Of course there is.
Q: Why uploading of asset fails?
A: By default in MySQL max_allowed_packet is limited to 1M. Change that setting to higher from my.ini in you MySQL installation directory. You need to restart MySQL process and Taiga servers after changing the setting.
Q: Why saving avatar fails?
A: See above.

Getting Taiga 0.1.3

Binaries

We only provide binaries for the windows environment. Check below how to build from source if you are running linux.
  1. Download the Taiga 0.1.3 win32 binary package from
    http://github.com/downloads/realXtend/taiga/Taiga-0.1.3.zip
  2. Extract it to the preferred location. Remember if you are using C:\Program Files that you might run into access problems. Be sure to have write access if you do extract there.

Building from source

Our sources for the Taiga project are located at http://github.com/realXtend/taiga

Using source packet

  1. Download the Taiga 0.1.3 tag source as zip or tgz
  2. Extract the file to your preferred location
  3. Get ModreX taiga-0.1 branch using these commands in your Taiga source directory
    git clone git://github.com/mikkopa/ModreX.git addon-modules/ModreX
    cd addon-modules/ModreX
    git checkout taiga-0.1
  4. Follow the README inside ModreX folder carefully

Using git

  1. Download Taiga source with command:
    git clone git://github.com/realXtend/taiga.git <your-taiga-source-directory>
  2. Change to your Taiga source directory
    cd <your-taiga-source-directory>
  3. Switch to develop branch
    git checkout develop
  4. Initialize and get submodules (ModreX)
    git submodule init
    git submodule update


Quick Build Instuctions

After you have Taiga 0.1.3 and modrex source we can start building. For more details read <taiga_source_location>/BUILDING.txt

Windows

You will need .NET 3.5 to build Taiga in windows.

open up a cmd.exe command prompt
cd <taiga_source_location>
runprebuild.bat
// You have now created the OpenSim.sln project file for Visual Studio 2008.
compile.bat
// Will build OpenSim with the default debug configuration. 
// If you want to build release configuration, open up the solution file in Visual Studio 
// and select Release from the top toolbar and build.
Linux

You will need Mono >= 2.4.2 and Nant >= 0.85 to build Taiga in linux.

cd <taiga_source_location>
cp addon-modules/ModreX/ModularRex/bin/* bin/
./runprebuild.sh
nant
cp -a addon-modules/ModreX/ModularRex/ScriptEngines bin/
cp -a addon-modules/ModreX/ModularRex/addon-modules bin/
rm bin/Mono.Security.dll

Configuring with Taiga Config Wizard

Taiga Config Creator

We have implemented a simple configuration wizard, which can be found here. We hope that this tool will ease the pain of having to go through numerous .xml and .ini files in order to get your servers running. You can start the wizard with configure.bat. In the first view enter your Taiga 0.1.2 opensim folder location, this should be prefilled if it finds ../opensim/opensim.exe.

After this you proceed and fill in the needed information to all pages. When you get to the last page you can export the configs to your opensim location by clicking Finish.

Note that if you are using MySQL the default databases are opensim, grid and taigawebdav. The databases are also configurable with the wizard. You will have to create the set databases before you run start.bat.

Notes: If you are in a 64-bit environment you wont most likely be able to use SQLite as youd db. Please let use know about bugs or improvement ideas you might have for the configuration tool.

Known issues

PROBLEM: The wizard still has some bugs and one of them is that every value in opensim/Regions/Regions.ini is surrounded with " " quotes. If you have problems starting up or loggin into your Taiga this might be the cause. The bug will be fixed to the next config creator release.

FIX: After you have exported the configs from config wizard and before you start the servers go and edit the Regions.ini manually. Remove the surrounding " " from UUIDs, IPs, ports and region names. This should do it. If you already started the servers before doing this, the databases might already be trashed with incorrect values. Should help to sweep the regions table from the grid database and restarting the servers.

RESOLVED IN TAIGA 0.1.3

Configuring Manually

For running servers we need to configure 3 + n or 5 + n servers depending on are we supporting legacy login and how many sims are we running. The pictures below illustrates different configurations that can be used. Legacy servers are optional, and are probably going to be dropped out at some point.

ScienceSimTaiga.jpg

User server is where client viewers login with OpenID or legacy realXtend login protocol. User server then authenticates and figures out where viewer is trying to log to. Robust server provides grid services, so thats where sims register themselves and user server can query where regions are located from robust server. During login process user server sends enable client message to sim where viewer is trying to login to. Viewer, user server and sim then exchange session id's and when login is succesfull viewer enter the sim. During legacy login client is authenticated through authentication server, and authentication server provides avatarstorage address.

OpenSim configuration files

OpenSim configuration includes configuring 3 files in our case, this of course depends how many sims you are running and how many regions they contain, but in the simplest case where we just configure 1 sim for Naali login, we need to configure 3 files. OpenSim.ini that resides in bin, Regions.ini that resides under Regions folder in bin and modrex.ini that resides in bin\addon-modules\ModreX\config folder. For installing MySql server etc, see the Taiga server documentation

OpenSim.ini

In OpenSim.ini you need to pay attention to following ini items:

[Startup]

  • gridmode = true
  • clientstack_plugin="ModularRex.dll"

clientstack_plugin must be set to ModularRex so that when client logs in sim creates NaaliClientView that deals with realxtend features: for example broadcasts avatar addresses to other clients in sim so avatar appearances show up correctly.

  • storage_plugin = "OpenSim.Data.SQLite.dll"
  • storage_connection_string="URI=file:OpenSim.db,version=3";

For database connections you need to choose one of available database providers. sqlite or mysql are recommended. storage_plugin deals with regions database connections.

  • physics = basicphysics

physics parameter defines physics engine to be used and basicphysics is one that is known to work without exeptions at the time of writing. Be sure that this is only declared once, when included modrex.ini declares this for the second time exeptions may occur.

[Network]

  • http_listener_port = 9000
  • default_location_x = 1000
  • default_location_y = 1000

These specify port where client connects to and default location for client (The user server sends these to Naali, after it asks them from robust server)

These urls are the corresponding grid, user, asset, inventory and messaging server addresses. In our configuration grid, asset and inventory services are located at robust server and therefore they have the same ip.

[AssetService]

  • AssetServerURI = "http://127.0.0.1:8003"
  • DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
  • AssetLoaderArgs = "assets/AssetSets.xml"
  • AssetLoaderEnabled = true

Defines asset loader for opensim and again uri pointing to robust server

[InventoryService]

Again setting the inventory service to point to robust service

[GridService]

  • LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
  • GridServerURI = "http://127.0.0.1:8003"
  • StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"

Setting the grid service to point robust server

[AuthorizationService]

Setting the authorization service to point to user server

[Modules]

  • NeighbourServices = "RemoteNeighbourServicesConnector"
  • NeighbourServiceInConnector = true
  • LandServiceInConnector = true
  • AssetServices = "ModCableBeach.dll:AssetServiceConnector"
  • InventoryServices = "ModCableBeach.dll:InventoryServiceConnector"
  • GridServices = "RemoteGridServicesConnector"
  • LLProxyLoginModule = true
  • Include-modules = "addon-modules/*/config/*.ini"

These connectors connect the opensim to robust server services, the first part before the colon (:) gives the dll name and the latter part the connector name in the dll. Asset, inventory and grid service connectors for connecting to robust service all reside inside ModCableBeach.dll. Include-modules must point to plase where modrex.ini is located.

See our OpenSim.ini example

Regions.ini

Regions.ini has simple syntax, you just give your region name in square brackets and give region values like normal ini file values like:

[My Sim name]
RegionUUID = b25f33f2-7d10-4c18-bd2f-130ad19440d7
Location = 1000,1000
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = SYSTEMIP
MasterAvatarFirstName = Test
MasterAvatarLastName = User
MasterAvatarSandboxPassword = test

You can have more than one region defined in the same file, RegionUUID, sim name, location and port must be unique to each region. Usually these are asked in the region startup and sim creates this file for you.

Modrex.ini

[Startup]

  • EventQueue = false

This must be disabled, so when enabling rex event queue could be enabled

[realXtend]

  • enabled = true

Enabling realXtend UDP ports and realXtend avatars

  • rex_python = true
  • RexEventQueue = true

Enabling python and rex event queue

  • FirstPort = 7000

This does probably have not effect since clientstack_plugin is set to ModularRex and port 9000 used for Naali connections, but to be on the safe side is set here

  • db_connectionstring = "MySQLDialect;MySqlDataDriver;Data Source=localhost;Database=os_modrex;User ID=root;Password=root"

This is connection string for modrex, depending on your choise of database set your database driver, database user name and password here.

  • ClientView = naali

ClientView should be set to naali for the realXtend Naali viewer.

See our modrex.ini example and more information about configuring ModreX

Robust server configuration

For robust server you only need to configure OpenSim.Server.ini

[Startup]

  • ServiceConnectors = "ModCableBeach.dll:CableBeachServerConnector,ModCableBeach.dll:AssetServerConnector,
    ModCableBeach.dll:InventoryServerConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,
    OpenSim.Server.Handlers.dll:GridServiceConnector,ModCableBeach.dll:WebDAVServerConnector"

Startup section and ServiceConnectors parameter tells what dlls Robust server loads at startup as comma (,) separated list of dll and service to load value pairs, like ModCableBeach.dll:CableBeachServerConnector, where ModCableBeach.dll is dll name and CableBeachServerConnector is the service loaded from dll. In the above example all connector services that Naali needs are listed.

[Network]

  • port = 8003

Port of the Robust server.

[CableBeachService]

Our robust service url and port

This is set to point to UserServer

UserService is also located at UserServer

  • PropertyProvider = "NHibernatePropertyStorage"
  • ConnectionString = "MySQLDialect;MySqlDataDriver;Data Source=localhost;Database=TaigaWebdav;User ID=root;Password=root"

These values need to be specified WebDAV property provider, you need to set up your database access, with correct user id and password, or use DummyPropertyProvider. DummyPropertyProvider wont store WebDAV properties, so when using DummyPropertyProvider inventory properties will be lost on server startup.

[AssetService]

  • LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
  • DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
  • AssetLoaderArgs = "assets/AssetSets.xml"
  • StorageProvider = "OpenSim.Data.MySQL.dll"
  • ConnectionString = "Data Source=localhost;Database=grid;User ID=root;Password=root;"

As an example, the above configuration precisely mimicks the legacy asset server. It is read by the asset IN connector (defined above) and it then loads the OUT connector (a local database module). That, in turn, reads the asset loader and database connection information. Above values are tested with Naali, you need to set your corresponding database access connectionstrings with correct user id and password, you probably can also use other storage providers.

[InventoryService]

  • LocalServiceModule = "OpenSim.Services.InventoryService.dll:InventoryService"
  • UserServerURI = "http://127.0.0.1:8002"
  • SessionAuthentication = "false"
  • StorageProvider = "OpenSim.Data.MySQL.dll"
  • ConnectionString = "Data Source=localhost;Database=grid;User ID=root;Password=root;"

Same values as for asset service, in addition inventory service also needs UserServerURI for authenticating inventory requests.

[GridService]

  • LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
  • StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"
  • ConnectionString = "Data Source=localhost;Database=opensim;User ID=root;Password=root;"
  • Realm = "regions"

This section specifies Robust services grid database connection, again you need to specify here your database connection string. Above example sets up mysql storage provider for grid regions.

See our OpenSim.Server.ini example

Messaging Server configuration

For messaging server you only need to configure MessagingServer_Config.xml The xml file has Config element that has these attributes:

  • default_user_server="http://127.0.0.1:8002/"
  • user_send_key="null"
  • user_recv_key="null"
  • default_grid_server="http://127.0.0.1:8003/"
  • grid_send_key="null"
  • grid_recv_key="null"
  • database_connect="Data Source=localhost;Database=grid;User ID=root;Password=root;"
  • database_provider="OpenSim.Data.MySQL.dll"
  • region_comms_provider="OpenSim.Region.Communications.OGS1.dll"
  • http_port="8006"
  • http_ssl="False"
  • published_ip="127.0.0.1"
  • console_user=""
  • console_pass=""

Here we setup user server and grid server (robust server address) for messaging server and setup database connection credentials and set database table name (grid), set database provider dll and dll for region comms provider, below is link for example file:

See our MessagingServer_Config.xml example

User Server configuration

For user server you only need to configure UserServer_Config.xml These attributes are set in the Config xml element:

  • Config default_startup_message="Welcome to OGS"
  • default_grid_server="http://127.0.0.1:8003/"
  • grid_send_key="null"
  • grid_recv_key="null"
  • default_inventory_server="http://127.0.0.1:8003/"
  • default_authentication_server="http://localhost:8002/"
  • library_location=".\inventory\Libraries.xml"
  • database_provider="OpenSim.Data.MySQL.dll"
  • database_connect="Data Source=localhost;Database=grid;User ID=root;Password=root;"
  • http_port="8002"
  • enable_llsd_login="True"
  • enable_hg_login="True"
  • default_loginLevel="0"

Obviously we set here startup message and grid + inventory servers to point to robust server and also authentication server to point to user server. The default word is used on those parameters because with openId inventory and authentication services can be somewhere else. Again we set database connection string and provider. Example file describes the xml file in more detail:

See our UserServer_Config.xml example

Setting up MySql

Getting MySQL

  1. Download: Go to http://dev.mysql.com/downloads/ and download the free community edition.
  2. Install: This tutorial will not go into detail how to accomplish this, help for installing MySql.
  • Note: In the configuration part you should check the option "Include Bin Directory in PATH" and set a new root password.
MySql logo

Creating needed databases to MySQL

Open your Windows command prompt and do the following. One line is one command in the command prompt, press enter after every line as we proceed.

mysql -u root -p
Enter password: <insert_your_root_password_here>
  • Note: If this mysql command doesn't work you did not include it in the OS PATH during installation. You need to go manually to the installation directory and find mysql.exe usually located in the bin folder.
CREATE DATABASE opensim;
CREATE DATABASE grid;
CREATE DATABASE taigawebdav;
CREATE DATABASE os_modrex;
  • Note to database names: You can set all the database names as you like, but you will have to go through some trouple to modify all the config files. The above are the default Taiga Config Wizard database names, but in the 0.1.2 release you can modify the database names from the wizard.

Running

After you are done configuring we are ready to start the servers. When a server starts its suggested at least for the first runs to check that the server is started properly and no errors occurred. You should also give time for every server to boot up successfully before starting the next server. If you have problems with OpenSim.32BitLaunch.exe running on a 32-bit operating system you can use OpenSim.exe instead.

Windows

We have made a batch file for starting the all servers in the right sequence. This is only located in the binary release.

cd <taiga_location>
start.bat

If you build Taiga 0.1 from source heres the rundown on how to start your servers.

cd <taiga_source_location>\bin
call OpenSim.Server.exe
call OpenSim.Grid.UserServer.exe
call OpenSim.Grid.MessagingServer.exe
call OpenSim.32BitLaunch.exe

Linux

You will need to open up new terminals for every server. All executables are located in <taiga_source_location>/bin

mono OpenSim.Server.exe
mono OpenSim.Grid.UserServer.exe
mono OpenSim.Grid.MessagingServer.exe
mono OpenSim.32BitLaunch.exe

Changelog and History

Version 0.1.3 (26.8.2010)

Features
  • Changelog now lists versions starting with the latest one
  • UploadScene capability for uploading scenes with viewer by estate owners or managers
  • Estatemanagement capability for editing estate banlist, accesslist, managers, access mode
  • Added option to disable Mumble module
  • Updated IronPython to 2.6.1
  • Added option to disable old realXtend voice
Bug Fixes
  • Ogre scene importer now doesn't import scene to all scenes in simulator, but requires user to select scene where to import. Target region is changed with command "change region <region name>"
  • In config wizard removed extra double quotes
  • Enabled rexfreedata messages with Naali clientview

Version 0.1.2 (19.5.2010)

Features
  • Config Wizard now lets you change modrex database settings.
  • Sending webdav inventory url in login response to client for OpenSim agents.
  • Broadcasting webdav appearance url via ModRex for OpenSim agents.
  • llTextBox script function
Bug Fixes
  • Webdav put handler now checks for overwrite header and replaces the existing asset if exists.
  • Webdav encode/decode fixes for request paths.
  • Added missing "running rex mode" flag to login response. realXtend 0.4* viewers now don't need to manually switch to ogre rendering.

Version 0.1.1 (3.5.2010)

Features
  • Improved Config Wizard and UI
  • Integrated new ScienceSim version based on OpenSim 0.6.9
  • http download caps for textures and meshes
Bug Fixes
  • Uploading meshes bug fixed (the crabs & critters -bug)
  • Login path fixes
  • Seed cap fix

Version 0.1 (1.4.2010)

  • The first Taiga release.