Setting Up Mega-Regions

From OpenSimulator

Revision as of 13:18, 14 August 2012 by Justincc (Talk | contribs)

Jump to: navigation, search

Contents

Introduction

Megaregions are an experimental feature of OpenSimulator that allow multiple 256 x 256 meter regions to be combined in to a single larger region, such that there is no border transition between regions and moving into the various regions will return position co-ordinates greater than 256.

Megaregions are a hack that make use of existing SL protocol mechanisms, and so do not require the viewer to be explicitly aware of the fact that a region is actually larger than 256 x 256. As such, there are aspects of megaregions that do not work very well. For example, teleporting into a megaregion may require the simulator to execute a double teleport for that client (one teleport after another) since the viewer cannot directly teleport into other parts of the megaregion except for the 256 x 256 part in the south-west corner. It may be possible to resolve these with time if viewers implement explicit support for megaregions.

Also, megaregion support has a number of bugs (e.g. terrain issues) which mean that it can only be considered experimental. These are simulator-side bugs that can be fixed (slowly) over time.

Layout Diagram

Here is a diagram of possible configurations. This is not all inclusive but is a good example of layout for the regions.

SPECIAL NOTE - Most Viewers still suffer the 4096 Teleport Bug where people cannot teleport more than 4096 regions away. OSGrid is centered @ 10000 10000. Some Viewers, such as MeerKat or Imprudence, have addressed this recently, others will likely follow suit. This bug applies to HyperGrided regions as well as Non-Hypergrid regions.

Do not place Mega regions and normal regions any closer than 2 regions spaces apart, as they WILL interfere with each other.


Mega region Layout Example

Steps

Step 0: Back Up Regions

If your OpenSimulator instance doesn't have currently any contents, then skip to #Step 1: Edit the File "OpenSim.ini".

If your regions have existing content, joining them may be dangerous -- you risk losing content. By way of precaution,

  1. Make a backup of your database. See Backups for instructions.
  2. Make an OAR for EACH REGION which you intend integrate into a megaregion. See OpenSim Archives for instructions.

Step 1: Edit the File "OpenSim.ini"

Modify your OpenSim.ini. In [Startup] section, change

; CombineContiguousRegions = false

to

CombineContiguousRegions = true

Step 2: Edit the File "Regions.ini"

Edit the file Region.ini which is located in "bin/Regions".

The example provided in #Example of Regions.ini File below is for a Mega-Region consists of 3x3, 9 simulator. Fill in the correct information in all the required fields. Remember to order your regions from South-West to North-East in your Regions.ini.

Step 3 : Start OpenSimulator Instance

Start Opensimulator. If your regions have no contents, then you already have it! If not,

  1. You will see a number of error messages -- ignore them.
  2. Wait for a while before console activity stopping, then type: fix-phantoms
  3. Wait before process completing. It can take several minutes for the backup thread to store everything.
  4. When the console activity stops, type: backup (This will persist the data into the Database again as a precaution).
  5. Restart Opensim, and check that all the objects are in their right places.

See Also: Importing OARs into megaregions (Diva's blog post)

Example of Regions.ini File

; 9 Simulator 3x3 Mega-Region Example
; Supply a unique UUID for each region
; Unique InternalPort for Each Region
; 
;************************************************
[RegionName_SW]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5000,5000
InternalAddress = 0.0.0.0
InternalPort = 9001
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
;
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_W]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5000,5001
InternalAddress = 0.0.0.0
InternalPort = 9002
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_NW]
RegionUUID = 84b41485-6884-412d-b4a2-2f6941559924
Location = 5000,5002
InternalAddress = 0.0.0.0
InternalPort = 9003
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_S]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5000
InternalAddress = 0.0.0.0
InternalPort = 9004
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_Centre]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5001
InternalAddress = 0.0.0.0
InternalPort = 9005
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;************************************************
[RegionName_N]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5001,5002
InternalAddress = 0.0.0.0
InternalPort = 9006
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
;
[RegionName_SE]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5000
InternalAddress = 0.0.0.0
InternalPort = 9007
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_E]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5001
InternalAddress = 0.0.0.0
InternalPort = 9008
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
;
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
[RegionName_NE]
RegionUUID = 00000000-0000-0000-0000-000000000000
Location = 5002,5002
InternalAddress = 0.0.0.0
InternalPort = 9009
AllowAlternatePorts = False
ExternalHostName = YourIP_DNSname
; 
;NonphysicalPrimMax = 0
;PhysicalPrimMax = 0
ClampPrimSize = False
;MaxPrims = 15000
; 
;ScopeID = 00000000-0000-0000-0000-000000000000
;
;************************************************
Personal tools
General
About This Wiki