A better SimCrossing
From OpenSimulator
This article or section is a Proposal It does not represent the current state of OpenSim, but is an idea for future work in OpenSim. Please feel free to update this page as part of the proposal discussion. |
This article or section contains obsolete and possibly misleading information. Please integrate this information into existing pages, update it to something more recent, or remove it. |
The idea behind that name is using some technics used in Telecom world (GSM,3G) to perform a better transition between sims.
Concept:
The SimCrossing (SC) is based one several messages exchanged between the object (Object), the actual sim (OriginSim) and the next sim (TargetSim). The main exchange are located in the HandOverArea (HOarea) located on the OriginSim. This area is computed by the server for each TargetSim (maximum 4 ).
In order to have a smooth transition, we need to determine an HandOver area where all the simcrossing messages exchange should happens. This area is computed on the object level regarding the ping latency between the Target and the object velocity. This area contains a RedZone area where all the Simcrossing conditions should be satisfied, otherwise the simcrossing won’t happen.
Phase 1 : Login or rezzing
During the login phase, the object asks the surrounding sims list to its actual simulator. We can call this list the ActiveSet . The ActiveSet contains the sim data and their “ping” time.
The object compute the SimCrossing boundaries and determine an “HandOver” area with a Redzone area based on the timers (ping + delta). Normaly the Handover should be ready before entering the Redzone.
Phase 2: Object logged and alive entering in the HandOver Area
On periodic basis, the object send a ping to each simulator on its activeset and update their status accordingly in order to keep an up to date neighbored simulator list.
When the object enter in the HandOver area, a message “SimCrossing Request” is sent to the Source simulator. The simulator will relay the message to the next Simulator (Target Sim) and will start downloading the object context. Those data should include all the running code, the values of the code’s variables like a memory dump (heap,stack and such).
more details here http://docs.google.com/Doc?docid=dfcvvffc_3jj3jwgxn&hl=en