I almost always work on 2D game maps, but occasionally I get intrigued by planetary maps. I'd like to make a planet that uses a grid. The topology of a sphere requires a few things:

  1. Moving east or west you eventually wrap around the world → easy
  2. Moving north/south you eventually reach a pole, and then all directions are south/north → medium
  3. Wrapping around the world east/west is shorter near the poles than near the equator → hard

wraparound.jpg

Some grid games like Civilization will let you wrap east/west but not north/south. That acts like a cylinder, not a sphere. And some grid games will let you wrap north/south just like you wrap east/west. That acts like a torus, not a sphere. A tile grid game that acts like a sphere is hard!

A few years ago I played with hexagons covering a sphere. The main idea was that although there are some pentagons scattered around, we can hide them by making the map generator produce impassable terrain (deep oceans, inaccessible mountains, lava, etc.) in those areas, so you can never get close to the pentagons. Also, we have to divide the planet into regions that get shuffled around as you move around. While I was working on that I found some other things I wanted to try, but I didn't try them right away. Why?

I have three kinds of projects:

  1. My "main" projects (hexagonal grids, pathfinding, etc.) are about making high quality explanations. I'll spend a lot of time on these. I usually understand the topic reasonably well.
  2. My "gamejam" projects like this one are about exploring new things. I'll spend a limited amount of time (hour, day, or week) on these. I usually don't understand the topic that well.
  3. My "art" projects are about making something that looks cool.

Since I limit my time on each of the "gamejam" style projects (marked with an /x/ in the URL), once I run out of time, I'll stop, and make a list of things I want to explore later. For the hexagons-on-a-sphere project, I wanted to try squares-on-a-sphere, but didn't have time. I decided to explore that topic last week. I started with HEALPix, a layout used by NASA for placing quadrilaterals on a sphere, but I concluded that it's overkill for my needs. NASA also has the COBE quadrilateralized cube, and there are several other layouts to try. But I'm out of time, so those will be in a future "gamejam" style project. As often happens, I realize towards the end that I should've read more papers first, but sometimes I don't know what to look for until after I've tried implementing something.


Read about covering a sphere in square tiles

Labels:

3 comments:

Christophe wrote at August 23, 2019 5:21 AM

It would probably ruin the fun, but it is surely easier to implement a real 3D sphere ;)

Amit wrote at August 24, 2019 11:37 AM

@Christophe: sure, I've implemented a real 3D sphere many times, but this is a more interesting challenge. A game like Civilization should be on a sphere, in theory, but the game is better (IMO) when played on a flat board. Civilization chooses to use a cylinder for this. I wanted to explore ways of making it work on a sphere. I am not convinced yet but I think this approach is promising :-)

Samuel L wrote at September 02, 2019 1:43 AM

See also

- "Torus games" by Jeff Weeks: http://www.geometrygames.org/TorusGames/index.html.en
- "Square-tiled surfaces" -- a whole area of mathematical research