PDA

View Full Version : How do I make a projection with easy connectivity?

Miker
03-14-2010, 09:00 PM
I am trying to create a world map for my MUD*. I wanted to have a close to spherical shape to it, but was unsure of how to do it with regards to connectivity and such. Then I came across this in a thread about Wilbur:

There is a projection that I learned from Dave Allen that is very roughly equal-area and has simple connectivity rules: start with a square map and declare the upper-right corner to be the north pole, the lower-left corner to be the south pole, and the diagonal from upper-left to lower-right to be the equator. Connectivity is then simple (when you go off the top you come back in on the right; going off the bottom you come back in on the left) and quick to compute with no connectivity map required. I need to implement this algorithm in the various flow computations in Wilbur one of these years so that folks can do whole-world erosion and river computation.

I am very interested in this projection. All attempts at searching for Dave Allen on Google and this site have led me nowhere in the last couple of months. I would greatly appreciate if any of the questions below are answered:

1) Who is this Dave Allen?
2) Where may I find more about him and his projection(implementations, copyrights, etc.)?
3) Is there an application that uses this projection? Where may I find it?

I thank you all for reading this and further thank you for all answers that may be provided.

* Text-based multi-user game, see Wikipedia for more.

waldronate
03-15-2010, 01:11 AM
Dave Allen wrote the original tec and clim programs back around 1990. http://markjstock.org/pages/builder.html has copies of this software. He had an upgraded, gui version a while after that called World Builder, but it seems to have disappeared.

After looking at the World Builder projection code in Wilbur, it turns out that I had misremembered the projection. His projection was an octagonal implementation on a square with north pole at center top and south pole at center bottom. The connectivity wasn't that simple, either.

The projection I described was from a compromise that I came to later. It is similar to the symmetric Collignon projection, but squashed and racked to get the poles in the corners of a square. http://www.progonos.com/furuti/MapProj/Normal/TOC/cartTOC.html has a good description of map projections; the Collignon is discussed under pseudocylindrical projections.

Most games don't use a spherical projection because the math isn't partcularly cheap to evaluate and it's rarely relevant to the story. Many games opt for a toroidal world (go off the top and end up on the bottom, go off the left and end up on the right, etc.) or cylindrical (go off the right or left edge and get to the other edge; top and bottom don't allow exit or come back in on the same edge halfway across the grid) because they are easy to evaluate. Users want north/south to be up/down in my experience rather than at at 45 degree angle.

RobA
03-15-2010, 11:14 AM
Super reference! http://www.progonos.com/furuti/MapProj/Normal/TOC/cartTOC.html needs to go into our FAQ list, I think!

-Rob A>

Miker
03-15-2010, 05:30 PM
Thanks for the replies!

As for the world shape, I still have the directions displayed as NSEW, but it is really just follows a pointer to another structure. The alignment of the directions in each structure will be done just once before the game opens.

Anyway, thanks for the replies! I just wanted more information on the projection.

Miker
03-20-2010, 02:42 AM
but squashed and racked to get the poles in the corners of a square.
How would I go about "squashing" in various image manipulation programs? It doesn't matter which one; if I don't have it, one of my friends does.

waldronate
03-20-2010, 05:56 PM
The general transformation appears as shown below.
Starting with an equirectangular map, squash the top and bottom to points (converts the poles into points from lines). TO get ffrom the first image to the second, I used the "Pointy" projection from Fractal Terrains. Take the pointy map and scale it horizontally by a factor 0.5. Then rotate by 45 degrees to get the final result.

The discontinuity at the equator is the most disturbing part of the transform, but it has the basic properties that I originally described.

ravells
03-24-2010, 07:03 PM
Super reference! http://www.progonos.com/furuti/MapPr...C/cartTOC.html (http://www.progonos.com/furuti/MapProj/Normal/TOC/cartTOC.html) needs to go into our FAQ list, I think

That is brilliant!!!

Thanks Waldronate for posting the link!!