Hypergrid Lists

Hypergrid Lists
Draft 1:

A new feature for hypergrids that is currently being worked on, is support for shared online lists of hypergrid links. So there could be various list s of a set of hypergrid enabled regions that all share a similar theme. And hopefully a lot of these lists will enable a user to add their own region data to that list.

Basically these lists will be a xml file, listing all the regions and the relevant data required for a hypergrid link; like their hostName and port number. Each region will also have a assigned "virtual location" within a 0,0 - 99,99 map area (the size of this area could change at a later data).

A user can then tell their own hypergrid enabled region to load that hypergrid list, by telling it the url of that list.

They user will also need to tell their own region how to deal with the location of those regions. So you can define a Hypergrid area, that is 99,99 region spaces in size, anywhere on your region's map. And then as your region loads that list, it will translate the link locations from the list (those assigned positions within that 0,0-99,99 area) into that hypergrid area. So if you had set the hypergrid area to start at location 2200, 2200. Then the link for the region that had a assigned list position of 2,2, will appear at 2202,2202 on your map.

The following image (not to scale) gives a basic overview, the regions on your home grid are the green squares and the orange area is the hypergrid area that you want the hypergrid regions to be in.



The StartXLoc,StartYloc are the coordinates for the start of the hypergrid area that you need to set.

So there are two things that need to be done to load such a list.

First set the Start location for that hypergrid area using the console command: link-mapping  

So for our example it would be: link-mapping 2200 2200

Next the region needs to be told to load the list by providing it with the url, using the console command : link-region [excludeList]

That would result in the region fetching that xml file and creating all the links for the regions in that list.

However there are currently two problems with this.

The first being that if the details for your own region was in that list, it would try to create a link to itself. So this is where the excludeList parameter (mentioned above ) comes in.

The details for each region in a list includes a "Section Name" which can be anything as long as it has no spaces and each region has a unique one. This is the name that you need to include in the excludelist, so that you region knows to ignore that data.

So if my region had a section name of "Hyper-Gateway1" in the list, I would need to use the command: link-region excludeList:Hyper-Gateway1

How the section names are actually set will depend on how and where the list is hosted. And as there are no such lists at the time of writing, its not possible to give instructions on how to find that name. But hopefully each list will have some instructions on either setting your own section name or how to find it if they assign one for you.

The second problem is that due to a bug in the viewer, teleports can only happen between regions that are within 4096,4096 map spaces of each other. As you should know from reading the rest of this page, Hypergrid regions have two map locations, their real location where they are on their home region. And the "virtual map location" somewhere within your hypergrid area, which is really just a local link to the real location.

For this bug, its the real location that matters. So when trying to teleport to a hypergrid region, there can't be more than a 4096,4096 difference between the location that you are currently on and the real location of the hypergrid region.

To get around this, the list can include details of a region's real location. And then currently when a list is loaded, your region will check that this real location is within the 4096,4096 range of its potential "virtual map location". If it is outside that limit, then no link will be created for that region.

This is all done automatically so there is nothing the user has to do.