df09fdf65d
In this new protocol, and as committed before, the viewer is not sent EnableSimulator/EstablishChildCommunication for the destination. Instead, it is sent TeleportFinish directly. TeleportFinish, in turn, makes the viewer send a UserCircuitCode packet followed by CompleteMovementIntoRegion packet. These 2 packets tend to occur one after the other almost immediately to the point that when CMIR arrives the client is not even connected yet and that packet is ignored (there might have been some race conditions here before); then the viewer sends CMIR again within 5-8 secs. But the delay between them may be higher in busier regions, which may lead to race conditions. This commit improves the process so there are are no race conditions at the destination. CompleteMovement (triggered by the viewer) waits until Update has been sent from the origin. Update, in turn, waits until there is a *root* scene presence -- so making sure CompleteMovement has run MakeRoot. In other words, there are two threadlets at the destination, one from the viewer and one from the origin region, waiting for each other to do the right thing. That makes it safe to close the agent at the origin upon return of the Update call without having to wait for callback, because we are absolutely sure that the viewer knows it is in th new region. Note also that in the V1 protocol, the destination was getting UseCircuitCode from the viewer twice -- once on EstablishAgentCommunication and then again on TeleportFinish. The second UCC was being ignored, but it shows how we were not following the expected steps... |
||
---|---|---|
.nant | ||
OpenSim | ||
Prebuild | ||
ThirdParty/SmartThreadPool | ||
ThirdPartyLicenses | ||
addon-modules | ||
bin | ||
doc | ||
share | ||
.gitignore | ||
.hgignore | ||
BUILDING.md | ||
CONTRIBUTORS.txt | ||
LICENSE.txt | ||
Makefile | ||
OpenSim.FxCop | ||
README.md | ||
TESTING.txt | ||
nant-color | ||
prebuild.xml | ||
runprebuild.bat | ||
runprebuild.sh | ||
runprebuild2010.bat |
README.md
Welcome to OpenSim!
Overview
OpenSim is a BSD Licensed Open Source project to develop a functioning virtual worlds server platform capable of supporting multiple clients and servers in a heterogeneous grid structure. OpenSim is written in C#, and can run under Mono or the Microsoft .NET runtimes.
This is considered an alpha release. Some stuff works, a lot doesn't. If it breaks, you get to keep both pieces.
Compiling OpenSim
Please see BUILDING.md if you downloaded a source distribution and need to build OpenSim before running it.
Running OpenSim on Windows
We recommend that you run OpenSim from a command prompt on Windows in order to capture any errors.
To run OpenSim from a command prompt
- cd to the bin/ directory where you unpacked OpenSim
- run OpenSim.exe
Now see the "Configuring OpenSim" section
Running OpenSim on Linux
You will need Mono >= 2.4.3 to run OpenSim. On some Linux distributions you may need to install additional packages. See http://opensimulator.org/wiki/Dependencies for more information.
To run OpenSim, from the unpacked distribution type:
- cd bin
- mono OpenSim.exe
Now see the "Configuring OpenSim" section
Configuring OpenSim
When OpenSim starts for the first time, you will be prompted with a series of questions that look something like:
[09-17 03:54:40] DEFAULT REGION CONFIG: Simulator Name [OpenSim Test]:
For all the options except simulator name, you can safely hit enter to accept the default if you want to connect using a client on the same machine or over your local network.
You will then be asked "Do you wish to join an existing estate?". If you're starting OpenSim for the first time then answer no (which is the default) and provide an estate name.
Shortly afterwards, you will then be asked to enter an estate owner first name, last name, password and e-mail (which can be left blank). Do not forget these details, since initially only this account will be able to manage your region in-world. You can also use these details to perform your first login.
Once you are presented with a prompt that looks like:
Region (My region name) #
You have successfully started OpenSim.
If you want to create another user account to login rather than the estate account, then type "create user" on the OpenSim console and follow the prompts.
Helpful resources:
Connecting to your OpenSim
By default your sim will be available for login on port 9000. You can login by adding -loginuri http://127.0.0.1:9000 to the command that starts Second Life (e.g. in the Target: box of the client icon properties on Windows). You can also login using the network IP address of the machine running OpenSim (e.g. http://192.168.1.2:9000)
To login, use the avatar details that you gave for your estate ownership or the one you set up using the "create user" command.
Bug reports
In the very likely event of bugs biting you (err, your OpenSim) we encourage you to see whether the problem has already been reported on the OpenSim mantis system.
If your bug has already been reported, you might want to add to the bug description and supply additional information.
If your bug has not been reported yet, file a bug report ("opening a mantis"). Useful information to include:
-
description of what went wrong
-
stack trace
-
OpenSim.log (attach as file)
-
OpenSim.ini (attach as file)
-
if running under mono: run OpenSim.exe with the "--debug" flag:
mono --debug OpenSim.exe
More Information on OpenSim
More extensive information on building, running, and configuring OpenSim, as well as how to report bugs, and participate in the OpenSim project can always be found at http://opensimulator.org.
Thanks for trying OpenSim, we hope it is a pleasant experience.