DOMINIONS 3 Semi-Random Map Enhancer - ReadMe

What it is:

What it does:

Setting it up:

3. Open SemiRandom.cfg with any text editor and change line #1 to your systems path to the directory in which you placed the above listed files. If I unzipped mine from the desktop, my path would be: C:\Documents And Settings\Me\Desktop\SemiRandom Hopefully in the near future there will be a simple setup program to take care of these steps or maybe a kind soul will take advantage of the automation features and run it from their server for an online version. I just want my map SemiRandomized: ================================== Just paste a copy of your map file in the same directory as the executable (SemiRandom.exe) and run the program. With the default configuration, you will be asked to supply the name of the map file that you wish to SemiRandomize. Enter the name of your file, but leave off the extension (.map). You will get informative messages and a fancy, high tech, animated 2D progress indicator followed shortly by a simple "Have a Nice Day!" and a program finished message. Hit enter and the window will close. Your map file is now SemiRandomized. I just want to fiddle with SR's settings: ========================================= Ok, here is a line by line map of the SemiRandom.cfg: 1. Path$ > Path used by SR to find your gan & data files. 2. fiddlePercent > Percent of provinces in the selected map file to attempt to modify. 3. fiddleName > 0=Don't mess with names. 1=Let GANs handle the names. 4. showNeed > 0=Don't show need text in map file. 1=Show me the need! 5. hotPercent > Percent of provinces in the south considered hot climate. 6. colPercent > Percent of provinces in the north considered cold climate. 7. cldband1 > Real world style climate. Hard prov #'s from 1 to value = southern cold. 8. tmpband1 > Real world style climate. cldband1 to value = southern tempearate climate. 9. hotband > Real world style climate. tmpband1 to value = hot climate. (Equator) 10.tmpband2 > Real world style climate. hotband to value = northern temperate climate. 11.cldband2 > Real world style climate. tmpband2 to value = norhtern cold climate. 12.map$ > Reserved for external app to append a map name for modification. Just a few comments: Set fiddlePercent between 1-100. 1 will barely touch the map if at all. 100 will attempt to potentially modify most if not all of the provinces with the limit being the supply of matching GAN scripts. This can be set above 100. The effect will be to allow SR to spend more time trying to find a suitable match. Setting showNeed to 1 will cause SR to print a message in the map file whenever it picks a province for modification, but no GAN file exists in the GAN library that matches the terrain, OR it only had UNIQUE type GANs that had already been placed elsewhere in the map file. Ah, Climates. The default setting is to use hotPercent & col(d)Percent. If you decide to use the "band" method, then you need to set these 2 to -1. The opposite is true if you decide to switch back to using the default method. In this case you would set the 5 band lines back to -1. Or just turn the climate option off alltogether by setting them all to -1. This would cause GAN scripts marked for temperature zones to not be placed however. The last line (map$) is intended to be reserved for an external application to direct SR to a map file, but it can also be used as a way to bypass the map selection from within the program itself. This is useful when testing GAN libraries and name sets when you are repeatedly processing the same map over and over. How to add GAN scripts (province files): ======================================== Ok, I envision an online repository where GAN script authors can upload their wonderous creations and others can download and drop a single GAN into their existing library, or entire sets. As it is now this is a simple two step process: 1. Save the downloaded GAN files in your SemiRandomize/GAN_BIN directory. 2. Open GanList.txt and paste the names of the files into the list (minus the ".gan" extension). That's it. This can be really easy if the GAN author will include a text file with a prepared list of the GAN filenames that a user can simply copy and paste into their own list. ***Update*** Gandalf has kindly donated server space. The SemiRandom home page is now at: http://www.dom3minions.com/~semirand/ Gan, Data & Set files may be submitted to: semirand@dom3minions.com How to add DATA word lists for names & items: ============================================= This is a similar process to adding GAN files. 1. Save the downloaded DATA files in your SemiRandomize/NAME_VAULT directory. 2. Open NameList.txt and paste the names of the files into the list (minus the ".txt" extension). How to author GAN scripts (province files): =========================================== It is assumed that you are familiar with map commands and map editing. The format is pretty simple for editing GAN scripts and there are just a few rules & suggested steps. 1. Look at existing GANs as a guide. 2. You do not need to add #nostart. This is added automatically. 3. You do not need to add #setland or #land. This is handled in the filename. (see below) GAN FILENAME FLAGS: ------------------- _HOT_ Hot Zone (southern map) _CLD_ Cold Zone (northern map) _TMP_ Temperate Zone (mid map) _IS_ ISLAND _LK_ LAKE _VC_ VOLCANO _PN_ PENN _VL_ VALLEY _CO_ COAST _LO_ LOST _R_ REPLACE - (#land) Set active prov & kill everyone in it. Used to REPLACE randomly placed units. _A_ ADD - (#setland) Set active prov. Units added to existing. _M_ MULTIPLE - More than one of a single province gan may be added to the map file. _U_ UNIQUE - Once a single instance of the province gan is "picked", it can not be picked again. _S/L/N_ Small/Large/Normal _PLN_ Plains _SEA_ Sea _WTR_ Some water _MNT_ Mountain _SWP_ Swamp _WST_ Waste _FST_ Forest _FRM_ Farm _MST_ Many Sites _DEP_ Deep _CAV_ Cave _FS_ Fire Site _AS_ Air Site _WS_ Water Site _ES_ Earth Site _SS_ Astral Site _DS_ Death Site _NS_ Nature Site _BS_ Blood Site _PS_ Priest Site _EMT_ Edge Mountain SPECIAL GAN COMMANDS: --------------------- @ ->select a random line from the following lines to follow this . Example #1: @3 commander "Minotaur Lord" 240 -- Priest -- no commander Result= "#commander 240 -- Priest" <- 1 in 3 chance to be printed in map file. Example #2: @1 landname "Icky Swamp" Result= "#landname "Icky Swamp" <- 100% chance to be printed in map file. Example #3: @2 #mag_astral 1 #mag_fire 1 Result= "#mag_fire 1" <- 1 in 2 chance to be printed. Note the space following "2 ". Example #4: @2 units 10 17 -- Archer -- no Archer Result= "-- no Archer" <- 1 in 2 chance to be printed. ie 50% chance of these units. @RANDOM ->select a random name or item to follow . Example #1: @RANDOM landname FOREST Result= "#landname "Simple Woods"" <- Rnd name from DATA1 + rnd name from DATA2. OR Result= "#landname "Ohmyg Forest"" <- Generated name + rnd name from DATA2. Example #2: @RANDOM comname COMMANDER Result= "#comname "Kullray"" <- Generated name. Example #3: @RANDOM comname COMMANDER @RANDOM additem HELMET @RANDOM additem 1HANDWEAPON @RANDOM additem SHIELD @RANDOM additem ARMORHVY @RANDOM additem BOOTS @RANDOM additem MISCITEM Result= <- Random item from the named item list. #additem "Starshine Skullcap" #additem "Jade Knife" #additem "Weightless Tower Shield" #additem "Silver Hauberk" #additem "Boots of Stone" #additem "Bracers of Protection" (NOTE: I recommend only 1 or 2 MISC items as duplicates are possible!) A simple province tutorial: (WORK IN PROGRESS!) I have an idea for a simple, common province. I want a scattering of human medieval-type plains provinces. Boring, I know. The thing is, I want them to have good priest support and a little bit of variety. Since I chose to use plains (a common terrain) and I intend to allow multiple instances of this province appear in the map, I will need to mix it up a bit. But first, let's create the GAN file. A GAN file is just a text file (.txt). They can be opened with any text editor. Before we create the file, we need to know what to name it. The name of the GAN file is where all of the flags are that tell SR how to handle it and where this province can be placed in a map. I create a text file and name it as follows: BALL7_TMP_M_R_N_PLN_.gan Here is a break down of the name and what the pieces mean: BALL7 = My chosen author name followed by an ID (7) to help me quickly identify a given province and to prevent conflicts. _TMP_ = This is my chosen climate (Temperate). Any of the _TAGS_ can be placed anywhere in the filename and work. _M_ = Multiple, so that this province can appear more than once in a given map. _R_ = I want to replace the inhabitants created by Dom3 for this province. _N_ = Normal sized provinces. This could be excluded (it's value is 0), but I like it for clarity. _PLN_ = Plains is the terrain to match this custom province to. Now SR will know where to put my GAN if an opening comes up. With the file open in a text editor, I can start adding stuff. :) I want to assign names to my provinces. Normally in a map file you would use something like: #landname 101 "Frog Belch Prairie" We are not making it for province #101. So instead, to name a single Unique province in a GAN, we would use: #landname "Frog Belch Prairie" For this province, we want Multiple instances, so we have two ways we could do it. One is to choose from a finite list that we define in the GAN: @3 landname "Frog Belch Prairie" "Dead Toad Prairie" "Prairie of Buried Toes" The second option is to use the DATA libraries: @RANDOM landname PLAINS Option 1 would return one of the three defined names and print: #landname 391 "Dead Toad Prairie" Option 2 could return a huge variety of possible names and will be the option that I choose for my GAN. (WORK IN PROGRESS!) How to author word lists for names & items: =========================================== You can define your own wordlists. Here are the rules: 1. Must be named like _DATA1.txt & _DATA2.txt for use with @RANDOM landname . 2. Must be named like _DATA1.txt for use with @RANDOM additem . 3. MUST be named like _DATA1.txt for use with @RANDOM comname . Note that comname is different in that regardless of which file it points at, it will still generate a random string from a random library. The default is to point to COMMANDER (COMMANDER_DATA1.txt). The word lists are just simple text files. Look at the existing ones and you will see how simple they are to modify. Adding new files is just a matter of getting the _DATA1/_DATA2 thing down and remembering that if you create GANs pointing at these new word lists, you will need to include them with the GANs as a set so that others may enjoy your fine work. If you do not, then SR will crash and burn when it tries to generate a name for your special provinces. External Automation: ==================== (WORK IN PROGRESS!) Credits: ======== Gandalf for his concepts and helping me to reach a little further than I would have otherwise. Edi for allowing me to include pieces of his content rich Faerun map file as special provinces.