Maps – The Resolution (Tech)
When we last saw our intrepid heroes, they were having problems of their world maps looking like swiss cheese – full of holes thanks to inconsiderate objects in the real world blocking the terrain scanning equipment used by our government. While manually plugging every hole was an option, it was a slow, and arduous task. Like Sisyphus rolling the boulder up the hill, for every hole we patched this way, it felt like we found two more to handle. We needed a better solution.
Thankfully for us, the government offers different resolutions of maps. While the highest resolution, the ones we were working with, has the issues of holes appearing, the lower-resolution maps, we discovered, do not have this problem. By scanning the terrain every 10 meters, instead of 10 centimeters, the equipment would ignore any objects that happened to be there save for the very largest. This meant that these low-resolution maps were blissfully hole-free.
But, they lacked the fine detail which we loved in the high-resolution maps. How much detail was missing one might ask. While the general shape is the same, when we compare the low-resolution terrain against the high, the difference is quite clear. As you can see here, we have Lotus Hills once again, the same district we highlighted in our last update. One half is the low-resolution terrain, the other half being the high. This particular section of terrain is Simjang Hill, the heart of the district. Instead of a rough shape, you get the bumps, nooks and crannies from the original geographic data, all there leaping out at you.
We clearly needed a way to solve this issue, but how?
In the end, we turned to an old friend, Photoshop, which reads these terrain files as if they were any other image. Photoshop could then take one of these lower-resolution maps, and paste the higher resolution map directly over it. As the holes are transparent to Photoshop, they were automatically filled with the underlying piece from the low-resolution map.
Instantly, this fixed most of the problem. On occasion, however, one of these holes was filled with a piece of low-resolution map that just did not look good in-game, being too square, or angular. Thankfully Unreal offers all the tools needed to fix this. When we come to a filled-in area, we can see up close how well it fits in with the surrounding terrain. And when it does look odd, like in this example picture, we use the various terrain tools within Unreal to blend it in, and add the finer details it lacks. This is still a dramatic reduction in work for us however, reducing hours of analysis and scanning into a few minutes of tinkering with various smoothing, eroding, sculpting, and flattening tricks.
One of the points the comments on our last piece brought up was a concern that by using real world data, we were limited to only producing a replica of a real world location. This is not so. From the beginning, our plan for the world map was to merge multiple areas together, creating the landscape we needed. Rather than letting the landscape of an area dictate the final form, we have picked and chosen to create our final form out of the landscape options before us.
To demonstrate, let us take another area, Highpoint. While Lotus Hills used the geographic data from Boston's Dorchester Heights, Highpoint instead tapped an area thousands of miles away, Queen Anne's Hill from Seattle, Washington. It is from Queen Anne that the most iconic photographs of the Seattle cityscape are taken, including the view outside the windows of the titular character from the long running television show “Frasier.” But while Dorchester is gently rolling, peaking at Telegraph Hill, Queen Anne's Hill has steep sides and a relatively flat top, giving a distinctively different feel to the geography.
The geography for each area was picked in order to fit that feel for the areas involved. This way we gave our creative people more freedom to conceptualize the world without worrying if there was some geographical feature which ruined it, like a ridge splitting an area or some water drainage ditch in the middle of a planned-for neighborhood. This is not without issues however, as there developed seams in the map data which needed to be corrected. When possible, we hid them, but that was not always an option. For those which needed to be in the world, those same tools we used for adding fine detail to the low-resolution patches do the job beautifully.
Finding a seam, we first smooth it out. Then we use erosion tools to shape the now smoothed surface. A pass with a random noise generator comes next, to add texture and detail which the area lacked. Another smoothing and erosion pass, the seam now is unrecognizable for what it was, and fits in with the landscape around it. In this case, the districts had a cliff dividing them, so the seam was turned into just that, and the terrain on either side adjusted in-engine to accentuate the cliff face. We can similarly turn such a seam into a gentle slope, rolling hills, absolutely flat, the options are numerous for what we can do. Once it has been gone over with our landscape painters and objects added, this particular cliff should look completely natural with the land around it.
One issue every game faces however is the end of the world. Not the game ending, but the physical end of the map. Several early iterations of our map had this issue, and once we calculated out how much line of sight distance we needed to obscure the map edge, we knew that we had to do something. Several games resolve this by putting the game world on an island or continent. Other games use high cliffs and mountains to hide the edge of the world map. We did not want to make a 'Titan Island” game, and high mountains mean little for view obstruction in a world where you can fly. The only way those would work is if you put them far in the distance, which then takes away usable land and limits the size of the city.
So, we compromised. The decision was made to locate Titan City on a pair of peninsulas, part of the delta created by the Merrimack and Innswich rivers. These peninsulas, the northern one called Bradford and the southern called Charleston, are divided by a channel formed by the joining of these two rivers. Along the western and a bit of southern borders, we used a mountain ridge to block the view. For those curious, this ridge derived its terrain from Bloody Bluff and Metacomet Ridge, both found in Massachusetts. While not the most impressive ridges in the world, they do reflect New England style terrain. By limiting it to only one corner of the map, we minimize the distance needed to hide the worlds edge, opening up more of the map for players to access. And by not just going to a pure island, we can maintain the feeling that you are part of a far larger world, rather than the city being the whole of everything.
And rather than just perform a hand-wave and saying the city is “somewhere in New England” we thought to be quite specific. While we did use parts of Boston for the terrain, we never wanted for the city to be Boston itself. So, we settled on a more northernly location, within Essex County, Massachusetts. Within the game world, the Charleston peninsula is an enlarged version of the Gloucester peninsula, while the Bradford peninsula extends outward from Newbury. In the real world, this are is a very large marsh tied to Plum Island and Essex Bay, for those curious.
This is not the final form, of course. As we continue to develop, things may still change. But it does reflect the world as it stands now. And only a small fraction of this world map will be used at launch, giving us plenty of room to grow over the years. Will we decide in two years that we need to adjust some area not yet in-game? Will we decide to adjust some already released area to reflect a metaplot element? Who knows, that is for the future to decide.
Establishing all of this was a team effort, although credit does need to be given to the people who made this all happen. AvelWorld Creator began this process, using real world terrain to derive our first iterations of the map. Death Sheep From Below took that work and built upon it, refining the general shape and building the model upon which we now operate. Copper Cockroach took the time to pour over maps and narrow down our cities location, finally locating the spot which it now rests on the globe. Catbunny began the work of laying out the physical features of the city onto the map, assisted by Ashenfall with his experience of city street layouts. Aquashock and Conundrum of Furballs both were critical in making sure the world map reflected the game world as developed. And everyone has put in their ideas which together helped make a full and rich world possible.
Discuss this update at http://cityoftitans.com/forum/discuss-maps-%E2%80%93-resolution-tech