Sid Meier's Civilization VI

Sid Meier's Civilization VI

28 ratings
How To Transcribe A Satellite Image Into A Map Script
By blkbutterfly
A step-by-step guide to making your own internally randomised map like Australia in the Outback Tycoon scenario, from a satellite image or any other map.
   
Award
Favorite
Favorited
Unfavorite
Prerequisites
You will need some understanding of the Lua programming language and basics of an image manipulation tool like GIMP.
Outline
All you need is to distinguish between land and water in an image in order to transcribe it onto a map script like Scrambled Australia. (It's basically the map from the Outback Tycoon scenario). No other information is necessary. Not hills, mountains, rivers or terrain.

Obtaining the land-strip data is ~75% of the work.

Afterwards you craft your landscape, which can be done by using as a template one or more of the maps from the Scrambled Maps Pack.
Choose An Image
As obvious as it may sound, this is the most important step, cos it's hard to come back here and start over if you selected an image of a map that is not clear enough, or is of the wrong area.

Choose the highest resolution image possible.

Also think very carefully of the geography you want.
Sharpen, Crop & Scale
Use a tool like GIMP to increase the contrast between land and water. Colorize. Fill and/or brush with paint.

Then crop the image to the geographic area you want.

Finally scale it down in pixels to the exact dimensions of the map size. i.e. pixel:hex 1:1.
(Don't be confused by Civ VI's hex grid. It is still described and modelled in a cartesian coordinate system).
Transcribe landStrip Data
This is the hardest (most laborious) part.

The random map scripts that produce a fixed land form use "land strip" data. Think of it like how old CRTs (cathode ray tubes) would render a picture. Line by line, left to right, top to bottom.

Each land strip vector consists of:

{y, xStart, xEnd}

For each "strip" of land on the map, you transcribe one of the above vectors. For example, consider the crude representation of a pixelated image ('X': a land tile):

0 0 0 X X 0 0 0
0 0 X X X X X 0
0 X X X X X 0 0
0 0 0 X X X 0 0

{0, 3, 4},
{1, 2, 6},
{2, 1, 5},
{3, 3, 5},

Note each row of the image may consist of more than one land-strip vector.
Interpretation
On occasion there may be a need to "interpret" the data. That is, the processed image may betray certain geographic features such as islands, lagoons and deltas. In such cases, you may have to contrive those necessary geographic features.

E.g: The Puttalam lagoon in Sri Lanka.
Pick A Template Script
Now pick a map script from any of the Scrambled maps that most fits your map and geography.

On a PC your subscribed mods can be found at
C:\Program Files (x86)\Steam\steamapps\workshop\content\289070

Place your land strip data into the landStrip array.

Set dimensions. Search for "width" and "height" and plug in your values. Set also the centre of the map in the vars g_CenterX and g_CenterY.
Build Map Mod
Now that you're done, see the guide How To Make A Map Mod on how to build & upload your map to the Steam Workshop.

Launch the FireTuner from the ModBuddy Tools menu to see the console output when generating a map to debug.
25 Comments
blkbutterfly  [author] 12 Jan, 2022 @ 10:31am 
@eurritz Correct! :steamhappy:
eurritz 12 Jan, 2022 @ 10:20am 
just to clarify, lets say theres an image like this:

O X O O X O
O O O X X X

the landstrip vector would be: { 0, 1, 1}, {0, 4, 4}, {1, 3,5}?
Soggus 29 Jan, 2018 @ 4:11pm 
Jaggers
blkbutterfly  [author] 28 Jan, 2018 @ 6:26pm 
@GermanGamer7 Ok. I'll think about writing some more guides for making other types of mods, but my "expertise" is definitely in map making. I'm learning more of scenarios too (cos they're based on maps).

But you are better off asking modders like JFD to produce a guide on how to make mods for civs and units, etc.
PrimalReversion 28 Jan, 2018 @ 8:09am 
Why the mocking emoji?
blkbutterfly  [author] 28 Jan, 2018 @ 6:04am 
@GermanGamer7 Actually you should ask 2K+Firaxis for such documentation cos you paid them for the game :steammocking:
PrimalReversion 27 Jan, 2018 @ 3:45pm 
By "make a mod" I mean add a new civ into the game, give it new units, etc.
blkbutterfly  [author] 27 Jan, 2018 @ 8:02am 
@TheMuffinGamer See the subheading "Transcribe landStrip Data". It's got an example of land strip vectors. You don't need a photo of a text file :steammocking:
Muffin 25 Jan, 2018 @ 4:15pm 
Could you post a photo of a txt file as an example, just so I can be sure I'm doing it right? It would be much appreciated.
blkbutterfly  [author] 24 Jan, 2018 @ 10:34pm 
@GermanGamer7 You can make a mod without knowing any coding. Not a map script though. Soz.

But a WorldBuilder map, yes. Or a mod that alters XML defaults, yes. You will still need to make yourself familiar with MS Visual Studio (Civ VI SDK) and XML