Setting Up Mega-Regions
From OpenSimulator
m |
|||
(24 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
− | = | + | {{Quicklinks}} |
+ | {{needsexample}} | ||
+ | {{ambox | ||
+ | | type = content | ||
+ | | text = <div style="background-color:#FFA0A0; padding:10px; padding-bottom:5px; border: 1px #FF544F solid width: 100%"> | ||
+ | Megaregions have been replaced by a more flexible and better supported [[Varregion]] capability from OpenSimulator 0.8.2 onwards. Updated December 16, 2015 | ||
− | + | Megaregions removed from OpenSimulator 0.9.0 onwards | |
+ | </div> | ||
+ | }} | ||
+ | = 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. | |
− | + | A newer way of supporting large regions is called [[Varregion]]. Unlike megaregions, this requires explicit viewer support. However, this support means that it does not need to rely on fragile hacks to work and will be much more functional and stable in the future. | |
− | + | = 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''' - Some 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. | |
− | |||
− | + | [[Image:MegaReg Layout.png|center|512x512px|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, | |
− | + | # Make a backup of your database. See [[Backups]] for instructions. | |
+ | # 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 <nowiki>[Startup]</nowiki> section, change |
+ | <source lang="ini"> | ||
+ | ; CombineContiguousRegions = false | ||
+ | </source> | ||
+ | to | ||
+ | <source lang="ini"> | ||
+ | CombineContiguousRegions = true | ||
+ | </source> | ||
− | + | === 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, | |
− | + | # You will see a number of error messages -- ignore them. | |
+ | # Wait for a while before console activity stopping, then type: '''fix-phantoms''' | ||
+ | # Wait before process completing. It can take several minutes for the backup thread to store everything. | ||
+ | # When the console activity stops, type: '''backup''' (This will persist the data into the Database again as a precaution). | ||
+ | # Restart Opensim, and check that all the objects are in their right places. | ||
− | + | See Also: [http://www.metaverseink.com/blog/?p=28 Importing OARs into megaregions (Diva's blog post)] | |
− | + | = Example of Regions.ini File = | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<source lang="ini">; 9 Simulator 3x3 Mega-Region Example | <source lang="ini">; 9 Simulator 3x3 Mega-Region Example | ||
; Supply a unique UUID for each region | ; Supply a unique UUID for each region | ||
; Unique InternalPort for Each Region | ; Unique InternalPort for Each Region | ||
− | |||
; | ; | ||
;************************************************ | ;************************************************ | ||
[RegionName_SW] | [RegionName_SW] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5000,5000 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9001 | InternalPort = 9001 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 113: | Line 90: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
;************************************************ | ;************************************************ | ||
[RegionName_W] | [RegionName_W] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5000,5001 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9002 | InternalPort = 9002 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
; | ; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
;PhysicalPrimMax = 0 | ;PhysicalPrimMax = 0 | ||
Line 133: | Line 105: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
;************************************************ | ;************************************************ | ||
[RegionName_NW] | [RegionName_NW] | ||
− | RegionUUID = | + | RegionUUID = 84b41485-6884-412d-b4a2-2f6941559924 |
− | Location = | + | Location = 5000,5002 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9003 | InternalPort = 9003 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 153: | Line 120: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
;************************************************ | ;************************************************ | ||
− | |||
[RegionName_S] | [RegionName_S] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5001,5000 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9004 | InternalPort = 9004 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 175: | Line 136: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
;************************************************ | ;************************************************ | ||
[RegionName_Centre] | [RegionName_Centre] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5001,5001 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9005 | InternalPort = 9005 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 196: | Line 152: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
;************************************************ | ;************************************************ | ||
[RegionName_N] | [RegionName_N] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5001,5002 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9006 | InternalPort = 9006 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 215: | Line 166: | ||
ClampPrimSize = False | ClampPrimSize = False | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
;************************************************ | ;************************************************ | ||
; | ; | ||
[RegionName_SE] | [RegionName_SE] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5002,5000 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9007 | InternalPort = 9007 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 237: | Line 183: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
;************************************************ | ;************************************************ | ||
[RegionName_E] | [RegionName_E] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5002,5001 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9008 | InternalPort = 9008 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ; | |
− | + | ||
− | + | ||
− | ; | + | |
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
;PhysicalPrimMax = 0 | ;PhysicalPrimMax = 0 | ||
Line 256: | Line 199: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
;************************************************ | ;************************************************ | ||
[RegionName_NE] | [RegionName_NE] | ||
− | RegionUUID = | + | RegionUUID = 00000000-0000-0000-0000-000000000000 |
− | Location = | + | Location = 5002,5002 |
− | InternalAddress = | + | InternalAddress = 0.0.0.0 |
InternalPort = 9009 | InternalPort = 9009 | ||
AllowAlternatePorts = False | AllowAlternatePorts = False | ||
− | ExternalHostName = | + | ExternalHostName = YourIP_DNSname |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
; | ; | ||
;NonphysicalPrimMax = 0 | ;NonphysicalPrimMax = 0 | ||
Line 277: | Line 215: | ||
;MaxPrims = 15000 | ;MaxPrims = 15000 | ||
; | ; | ||
− | ;ScopeID = | + | ;ScopeID = 00000000-0000-0000-0000-000000000000 |
; | ; | ||
− | ;************************************************</source> | + | ;************************************************</source> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 15:18, 8 July 2018
Languages: |
English 日本語 |
This article or section needs more examples While the information on this page may be good, it is complex information that needs examples to make it user friendly. Please consider writing some examples of usage for this page. |
Megaregions have been replaced by a more flexible and better supported Varregion capability from OpenSimulator 0.8.2 onwards. Updated December 16, 2015 Megaregions removed from OpenSimulator 0.9.0 onwards |
Contents |
[edit] 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.
A newer way of supporting large regions is called Varregion. Unlike megaregions, this requires explicit viewer support. However, this support means that it does not need to rely on fragile hacks to work and will be much more functional and stable in the future.
[edit] 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 - Some 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.
[edit] Steps
[edit] 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,
- Make a backup of your database. See Backups for instructions.
- Make an OAR for EACH REGION which you intend integrate into a megaregion. See OpenSim Archives for instructions.
[edit] Step 1: Edit the File "OpenSim.ini"
Modify your OpenSim.ini. In [Startup] section, change
; CombineContiguousRegions = false
to
CombineContiguousRegions = true
[edit] 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.
[edit] Step 3 : Start OpenSimulator Instance
Start Opensimulator. If your regions have no contents, then you already have it! If not,
- You will see a number of error messages -- ignore them.
- Wait for a while before console activity stopping, then type: fix-phantoms
- Wait before process completing. It can take several minutes for the backup thread to store everything.
- When the console activity stops, type: backup (This will persist the data into the Database again as a precaution).
- Restart Opensim, and check that all the objects are in their right places.
See Also: Importing OARs into megaregions (Diva's blog post)
[edit] 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 ; ;************************************************