- Joined
- Mar 17, 2007
- Messages
- 9,280
Today I was thinking of a scenario idea, and while doing so happened to come across some files I'd saved back in 2010 around the concept of trying to get random maps with less water. It looks like I never posted about it back then, though I did write enough about it in a Word document to be able to reproduce what I did then again today. So without further ado...
How's a 30% water Continents map sound?
Or perhaps a 20% water "archipelago" is more to your tastes?
Despite nearly being a Pangaea, I think that's actually a pretty cool "achipelago" map that the map generator came up with.
I didn't have success 100% of the time back in 2010, which could be for a variety of reasons, including an error when I was setting up the game settings or the map generator getting confused. But most of the time, it appeared effective.
All of these are made using a random map from within Civilization III: Conquests itself. I started out using the "New Game" option; tonight I also used a random-map BIQ with Reveal Map enabled so that CAII would spill the beans on the percent water.
The percent water over five 20% Water Standard-Size Archipelago maps (all random seed) like this:
42.8%
43.9%
43.8%
43.4%
44.4%
Versus 60% Water...
63.6%
63.5%
63.5%
63.8%
63.8%
So as you can see, the map generator tries, but it can't always give you exactly what you want (and even at 60%, it's slightly off). But it is capable of creating maps with significantly less water than it does by default.
Before anyone asks, I suspect it will not work to increase water percentage to 90% or above, due to the way the percent water is stored. And while 10% water maps may have marginally less land than 20% ones, the difference will probably be slight.
It wouldn't surprise me if it's possible to cajole the editor to do this in a similar fashion, but I've only experimented with this in-game so far.
Technical information on how to create such maps:
In the following, I am going to assuming here that you are using a Conquests No Raze executable or something similar to it (like the 513 cities one) when starting Civ3, and installed your Civ3 from the Conquests! physical CD on top of a Vanilla or PTW installation. The Civ3 Complete version and the Steam versions may or may not work, and the executable from the physical disk probably will not work. Finally, Mac users are out of luck... this won't work as written here on Macs (but see the second spoiler below for how to [probably] get this working on those setups).
This was discovered using Windows XP. It may or may not work with Windows Vista or later.
Go to start a New Game. Set up what you want on the "Choose Your World" page. Importantly, do choose whether you want Pangaea/Continents/Archipelago. It doesn't matter what percentage water you choose - you'll change that later.
Now click the "O" to advance to the "Player Setup". This is where you'll set up the water percentage. And this is where it gets technical...
You'll need a program that can modify the memory of other programs while they are running. I recommend HxD, a versatile hex editor. Install it, and then start it up. From here on, I'm going to assume you are using HxD; if not, you'll have to figure out how to perform the equivalent steps in the program you are using.
Go to the Extras menu, and choose Open RAM from it. In the new window that pops up, under Virtual Memory, look for "Civ3Conquests.exe" or whatever you've re-named your Civ3 executable to if you've done so. Select it, and click "OK".
Note that the functionality described from the above paragraph onwards, modifying other programs' memory, is somewhat hazardous and can be used for malicious purposes. This is why I'm not sure if this will work on Vista or later - Vista may have security features that prevent HxD and other programs from doing what is being described. If so, you may need to find a computer with Windows XP or earlier to do this.
At this point you're looking at what the game looks like to the computer. You can scroll around in it if you're curious; chances are you won't be able to read most of it. When you're ready to continue, press Ctrl+G. This brings up a Goto window. Make sure the "hex" button is selected, and then put 00A52CE8 in the "Offset" area. Also make sure the "Offset relative to" is set to "begin". Now press OK.
The cursor is now positioned at row 00A52CE0, column 8. You'll want to go up exactly one row, to where the percentage water is stored. If you had 80% water, this will be a 00, if 70%, a 01, and if 60%, a 02. Each increase of 1 decreases the water by 10% (and you'll also see now why I doubt 90% water will work). So, a value of 06 will give you a 20% water map, and 03 will give you 50%, etc. Type in the value you want (including the zero at the beginning), and you'll notice that the text you just typed is now red.
Now it's time to save your settings. Press the floppy disk button below the menus, and you'll get a warning saying that "The data will be written directly without a backup and cannot be undone. Save anyway?" This is because if you do this wrong, it can be hazardous to the programs that are running. If you're sure you've done this right, click Yes.
Now, back in Conquests, choose your Player Setup settings. But before starting the game, click the "X" to go back to the World Setup. You'll notice that instead of Archipelago (60% Water), it now says something like Archipelago (CLIMATE) or Archipelago (Pangaea). This means that you did it right. Firaxis didn't program the game to display 50% Water or less, so this is what you get instead. Click the "O" twice to start the game.
You may wish to test this with a debug/reveal map BIQ, or resigning to see the world map, a few times to get an idea of what the map will look like.
The difficulty with these versions is that Civilization III is likely to be stored differently in memory (possible for Steam and Complete, and definite for Mac). However, it's probably that even though the location in memory to change this with will be different, what it's surrounded with in memory will be the same. Thus you just need a way to find it.
Note that, like the above, this may or may not work with Windows Vista or later, and may or may not work on Macs (in part since it's a different build of Civ, but primarily because of potential OS features).
And that can be done the same way I found this in the first place - with the Random Seed. The Random Seed is stored in memory in two places once you go to the Player Setup tab. First, it's stored as a hexadecimal number, and immediately after that, it's stored in text. Thus, if you give the seed a random value that's unlikely to be elsewhere in the program, you can probably find it (although there's always a chance it's lurking somewhere else).
So, in this case, set the Random Seed to something you can remember and that's rather large, such as 13371337. Now, search for that in the memory of Conquests. In HxD, you can do this by making sure you are at the beginning, pressing Ctrl+F, typing the Random Seed in the "Search for:" area, choosing "Text-string" as the "Datatype", "Forward" as the search direction, and pressing "OK". It should take you right to the random seed (it may take a couple seconds depending on how fast your memory and CPU are). You can get to the water percentage from here by going up one row, and four columns to the left (aka, 20 bytes/columns before the start of the random seed).
Oh, and shameless self-promotion of my second-latest invention, hidden in the maps sub-forum since yesterday: The World Turned Upside Down.
How's a 30% water Continents map sound?
Or perhaps a 20% water "archipelago" is more to your tastes?
Despite nearly being a Pangaea, I think that's actually a pretty cool "achipelago" map that the map generator came up with.

I didn't have success 100% of the time back in 2010, which could be for a variety of reasons, including an error when I was setting up the game settings or the map generator getting confused. But most of the time, it appeared effective.
All of these are made using a random map from within Civilization III: Conquests itself. I started out using the "New Game" option; tonight I also used a random-map BIQ with Reveal Map enabled so that CAII would spill the beans on the percent water.
The percent water over five 20% Water Standard-Size Archipelago maps (all random seed) like this:
42.8%
43.9%
43.8%
43.4%
44.4%
Versus 60% Water...
63.6%
63.5%
63.5%
63.8%
63.8%
So as you can see, the map generator tries, but it can't always give you exactly what you want (and even at 60%, it's slightly off). But it is capable of creating maps with significantly less water than it does by default.
Before anyone asks, I suspect it will not work to increase water percentage to 90% or above, due to the way the percent water is stored. And while 10% water maps may have marginally less land than 20% ones, the difference will probably be slight.
It wouldn't surprise me if it's possible to cajole the editor to do this in a similar fashion, but I've only experimented with this in-game so far.
Technical information on how to create such maps:
Spoiler Technical Content :
In the following, I am going to assuming here that you are using a Conquests No Raze executable or something similar to it (like the 513 cities one) when starting Civ3, and installed your Civ3 from the Conquests! physical CD on top of a Vanilla or PTW installation. The Civ3 Complete version and the Steam versions may or may not work, and the executable from the physical disk probably will not work. Finally, Mac users are out of luck... this won't work as written here on Macs (but see the second spoiler below for how to [probably] get this working on those setups).
This was discovered using Windows XP. It may or may not work with Windows Vista or later.
Go to start a New Game. Set up what you want on the "Choose Your World" page. Importantly, do choose whether you want Pangaea/Continents/Archipelago. It doesn't matter what percentage water you choose - you'll change that later.
Now click the "O" to advance to the "Player Setup". This is where you'll set up the water percentage. And this is where it gets technical...
You'll need a program that can modify the memory of other programs while they are running. I recommend HxD, a versatile hex editor. Install it, and then start it up. From here on, I'm going to assume you are using HxD; if not, you'll have to figure out how to perform the equivalent steps in the program you are using.
Go to the Extras menu, and choose Open RAM from it. In the new window that pops up, under Virtual Memory, look for "Civ3Conquests.exe" or whatever you've re-named your Civ3 executable to if you've done so. Select it, and click "OK".
Note that the functionality described from the above paragraph onwards, modifying other programs' memory, is somewhat hazardous and can be used for malicious purposes. This is why I'm not sure if this will work on Vista or later - Vista may have security features that prevent HxD and other programs from doing what is being described. If so, you may need to find a computer with Windows XP or earlier to do this.
At this point you're looking at what the game looks like to the computer. You can scroll around in it if you're curious; chances are you won't be able to read most of it. When you're ready to continue, press Ctrl+G. This brings up a Goto window. Make sure the "hex" button is selected, and then put 00A52CE8 in the "Offset" area. Also make sure the "Offset relative to" is set to "begin". Now press OK.
The cursor is now positioned at row 00A52CE0, column 8. You'll want to go up exactly one row, to where the percentage water is stored. If you had 80% water, this will be a 00, if 70%, a 01, and if 60%, a 02. Each increase of 1 decreases the water by 10% (and you'll also see now why I doubt 90% water will work). So, a value of 06 will give you a 20% water map, and 03 will give you 50%, etc. Type in the value you want (including the zero at the beginning), and you'll notice that the text you just typed is now red.
Now it's time to save your settings. Press the floppy disk button below the menus, and you'll get a warning saying that "The data will be written directly without a backup and cannot be undone. Save anyway?" This is because if you do this wrong, it can be hazardous to the programs that are running. If you're sure you've done this right, click Yes.
Now, back in Conquests, choose your Player Setup settings. But before starting the game, click the "X" to go back to the World Setup. You'll notice that instead of Archipelago (60% Water), it now says something like Archipelago (CLIMATE) or Archipelago (Pangaea). This means that you did it right. Firaxis didn't program the game to display 50% Water or less, so this is what you get instead. Click the "O" twice to start the game.
You may wish to test this with a debug/reveal map BIQ, or resigning to see the world map, a few times to get an idea of what the map will look like.
Spoiler How To Do This With Other Civ Versions (Steam/Mac/Complete/etc.) :
The difficulty with these versions is that Civilization III is likely to be stored differently in memory (possible for Steam and Complete, and definite for Mac). However, it's probably that even though the location in memory to change this with will be different, what it's surrounded with in memory will be the same. Thus you just need a way to find it.
Note that, like the above, this may or may not work with Windows Vista or later, and may or may not work on Macs (in part since it's a different build of Civ, but primarily because of potential OS features).
And that can be done the same way I found this in the first place - with the Random Seed. The Random Seed is stored in memory in two places once you go to the Player Setup tab. First, it's stored as a hexadecimal number, and immediately after that, it's stored in text. Thus, if you give the seed a random value that's unlikely to be elsewhere in the program, you can probably find it (although there's always a chance it's lurking somewhere else).
So, in this case, set the Random Seed to something you can remember and that's rather large, such as 13371337. Now, search for that in the memory of Conquests. In HxD, you can do this by making sure you are at the beginning, pressing Ctrl+F, typing the Random Seed in the "Search for:" area, choosing "Text-string" as the "Datatype", "Forward" as the search direction, and pressing "OK". It should take you right to the random seed (it may take a couple seconds depending on how fast your memory and CPU are). You can get to the water percentage from here by going up one row, and four columns to the left (aka, 20 bytes/columns before the start of the random seed).
Oh, and shameless self-promotion of my second-latest invention, hidden in the maps sub-forum since yesterday: The World Turned Upside Down.