View Full Version : [Map Script] SmartMap
surt Jan 20, 2006, 12:40 PM Yes, it works with 1.61, with mods, and with multiplayer.
Get it from the download link below.
Version 9.1 update released, now loads and scales WBS files, plus loads blue marble terrain and WBS terrain for those maps!
Version 9.0 new version with new earth maps feature!
Unzip to your publicmaps folder. Use by selecting customgame, and selecting SmartMap as the map.
The single most common error is to wind up with an extra folder: civ iv folder\PublicMaps\SmartMap\SmartMap.py rather than the correct:
civ iv folder\PublicMaps\SmartMap.py
This map script can create an incredible assortment of gameplay experiences.
Here's a random sampling of outcomes:
First row: High Sea level, Large size, assorted options.
Second row: Med Sea level, Large size, assorted options.
Third row: Low Sea level, Large size, assorted options.
http://ptth.net/civiv/SmartMapSamplesV7.jpg
You can see a screenshot of all the custom options in the post below.
Here's a picture of the new earth maps:
http://ptth.net/civiv/earthmaps.jpg
Unzip to your publicmaps folder. Use by selecting customgame, and selecting SmartMap as the map.
The single most common error is to wind up with an extra folder: civ iv folder\PublicMaps\SmartMap\SmartMap.py rather than the correct:
civ iv folder\PublicMaps\SmartMap.py
surt Jan 20, 2006, 02:03 PM Here's a peek at the custom options:
http://ptth.net/civiv/optionsV9.jpg
And from the readme, here's information on how to use it:
ReadMeSmartMap.txt
ReadMe file describing how to use SmartMap, and its various features.
SmartMap has two related discussion threads.
CivFanatics:
http://forums.civfanatics.com/showthread.php?t=154989
Apolyton:
http://apolyton.net/forums/showthread.php?s=&threadid=147547
Sections:
1) How to use
2) Options
3) Thanks
4) Version History
1) How to use
Extract the SmartMap.py to your CivIv install directory's PublicMaps
folder. Start the game, and select Single Player followed by Custom Game.
On the option titled 'Map:' select SmartMap as the map. Set other options
to your liking (I suggest trying all the defaults first!), and Launch!
A common error is to extract to civdir\PublicMaps\SmartMap\SmartMap.py. You
want to just have civdir\PublicMaps\SmartMap.py
Be patient. This script is slower than many of the default scripts. A large
map takes about 30 seconds to generate on my 1.8ghz pentium-M laptop. Huge
takes close to a minute. Pangea is the slowest to generate, picking fair
start locations on a pangea takes a lot longer.
2) Options
Options are the point of SmartMap. There are a bunch of them. I will
describe how to use each of them in turn to get just the map you are
looking for.
Map: SmartMap, otherwise you're not using SmartMap!
Size: Duel, Tiny, Small, Standard, Large, Huge. SmartMap will use this
setting to determine the overall area of the map, unless you choose to override
the width and height manually, as explained later. SmartMap picks a random
width and height that produce the required area, so not all maps will be the
same shape (if you want to force a specific shape, use the overrides
described later).
Climate: Temperate, Tropical, Arid, Rocky, Cold. These mean approximately
what they do in the normal map scripts. Tropical has less desert and jungle than
you would get in the normal generator. If you feel like you get too much tundra
and snow in temperate, try tropical. Arid produces a lot of desert. Rocky means
an extra boost to hills and mountains. Cold means more snow and tundra.
Sealevel: low, medium, high. This option is used by SmartMap in a unique way.
Since SmartMap offers a direct ocean percent control, sealevel is used to control inter
continental strategy. In particular:
Low = all land on the map MIGHT (or might not) be reachable by galley
Medium = it is very unlikely you will be able to reach another continent by galley,
but contact between civs on different continents may happen early due to
influence borders touching (it is only possible to reach another continent
occasionally by galley due to a bug in civiv that will rarely allow a galley
to enter an ocean tile).
High = guaranteed that you cannot reach another continent by galley, and civ contact
between different continents will not happen until two near as possible cities
both reach level 3 culture, or caravel (almost always caravel happens first).
This option is not guaranteed to be enforced if you select a non-default land style, as
explained later.
Era / Speed: These options are not affected by and do not affect SmartMap. They are for the
mod or the game to use.
Continents: Controls the number of continents generated by the script. Each option is fairly
self explanatory. On low sea level, continents are permitted to merge, so you may receive less
than the expected number of continents. You may also receive less than the expected number if
the script cannot find enough room (as might happen if you select duel size with 36 continents).
You may receive more than the expected number if you select a non-default land style, as explained
later. If you select 0 continents, you'll get a very archipelago style map. You may also select
'single tile isles' if you are playing a mod that prefers maps with only single tiles (such as
planetary space based mods). You can also select various specific land forms, such as earth,
north america, south america, africa, europe, asia, and australia.
Terrain: selects a terrain generator. The terrain generator decides if a given land or hill plot is
a desert, plains, grass, tundra, or snow. The oasis and great plains generators are taken from those
scripts, while standard is just what you normally get on default scripts. SmartMap is a custom terrain
generator that knows how to generate terrain for all kinds of map setups. You can also use this
setting to exclude certain types of terrain such as desert. I recommend SmartMap. There are
additional options that will restrict or alter the types of terrain offered as well,
such as no snow or desert or more grass.
Features: selects a feature generator. Features are things like oasis, flood plains, forest, and jungle.
They go on top of the base terrain to enhance it in some way. Again, the oasis and great plains options
are just what you'd expect from those scripts. Note that you do NOT have to match terrain and feature
generators. Oasis terrain with Great Plains features works just fine, as do all other combinations.
The default SmartMap feature generator generates a few combinations that do not occur in the standard
scripts, in particular things like floodplains on grass are possible, and oasis will occassionally be seen
on tundra. These are things that happen on earth, and so are 'realistic' but some may find undesireable
because they aren't normal in the sense of the default scripts. If you are one of these people, there is
the SmartMap Strict option, which to the best of my knowledge will not generate any combinations not found
in the default scripts. I recommend either SmartMap or SmartMap strict.
Bonuses: selects how bonuses are placed. You can choose from the standard placement or SmartMap placement.
SmartMap attempts to be fairer about how resources are placed strategically, and offers control over how many
resources you get. There are restricted placement options that place resources more like the standard
generator, or which obey additional rules enforced by the standard generator. I recommend SmartMap Normal.
Goodies: selects how goody huts are places. Options are similar to resources, but also includes an option
to disable goody huts entirely (SmartMap None). I recommend SmartMap Normal.
Ocean: determines the percentage of ocean to be used on the map. Note that selecting low ocean
levels may result in a map with significantly more useful land area than is typically expected for
a given size of map, and may cause a gameplay imbalance. There is a no ocean option which will produce
lakes but not ocean, and a no lakes, no ocean option which will produce an all-land map. You may also
choose from various options that will generate an inland sea or lakes rather than an ocean based map.
Hills: allows you to specify what percentage of the land area should be coverd in hills.
Peaks: allows you to specify what percentage of the land area should be coverd in peaks. The no block
options will prevent certain situations where a single peak blocks access to a resource.
Forest/Jungle: allows you to specify if you'd like more or less than the standard amount of forest and
jungle. Note that this option only affects the results of the SmartMap feature generator.
Rivers/Lakes: allows you to specify if you'd like more or less than the standard amount of rivers and
lakes. Note that this option only affects the results of the SmartMap feature generator.
Land Style: this option controls a couple of special features that are that are included to allow for a
greater map variety. First, you can control how round your continents will turn out. Rounder
continents have a tendency to be more fair, so very round is the default. As you transition to somewhat or
less round, you will get odder continent shapes which various people have requested, or find to be
'more realistic'. Independently, you may also choose a level of fragments. Fragments are little pieces
of land added randomly to the map which will appear as archipelagos or odd continent outgrowths, or tiny
islands. You can get all sorts of interesting growth patterns with these. However, since they may be
placed anywhere, they may violate the sea level guarantees of separation. They may completely join
continents, or make them reachable by galley. Nevertheless, some people wanted this as another way to
have more varied or realistic maps. The default for this option is very round, no fragments, which provides
the most guarantees of fair gameplay, particularly for multiplayer games. For single player games, you
may have fun seeing what interesting other types of maps you can get with this option.
Start Placement: selects how player start positions are determined. The SmartMap option attempts to do a
fairer job of placing players based on an analysis of the positions of strategic resources, and is also
more likely to place your initial settler on a tile with one tile of ocean access so that your capital can
build ocean buildings. It also prefers to place start positions on hills, because of the defensive bonus.
You can also select placement that will prefer inland or coastal starts either just for the human player,
or for all players. The 'new world' options will attempt to place all players in the eastern half of the
map
Wrap: allows you to specify whether the map wraps around the border in x and/or y. X wrapping is
the standard circumnavigatable globe you probably expect, but the other options may provide for
an entertainingly different gameplay experience. You can also select central pole with any of the above,
in which case you will find an additional 'pole' (icy area) in the center of the map. This is the
equivallent of polar projection.
Override width/height options: these options allow you to force SmartMap to generate a specific size of map
to your liking. This can allow you to generate absolutely huge maps beyond the size that your computer
memory can hold, so be careful with this. Multiply the width you select by the height you select to get
the total number of tiles your map will have.
Override separation: this option allows you to override the sea level control, and gives you the ability
to pick a continental separation of your liking. In particular, this makes it possible to ensure that
culture boundaries on separate continents will never touch, or to allow continents to come within exactly
one coastal tile of each other, without having to resort to using fragmented land.
All options now have an added 'smartmap random pick' option, which will choose among the most commonly
preferred options on that particular menu. This is particularly useful for override width and height where
the normal 'random' option will often return values too large and cause your computer to run out of memory.
3) Thanks
I'd like to thank the following people for their contributions:
Sirian : for answering a number of questions about how map scripts work
A Silly Goose @ CivFanatics : for early feedback
lordroy @ CivFanatics : for lots of feedback and screenshots
Victorvanwavere : suggestion to have a forest/jungle setting & what became land style
Randle @ CivFanatics : report of getting capital on wrap border
Silver14 @ Apolyton : report of too many very tall maps when x-wrapping and other early feedback
alms66 @ Apolyton : also suggested the forest/jungle setting, and other early feedback
Commander Bello @ Apolyton : manual width/height override and other feedback
skodkim @ Apolyton : assorted feedback
battists @ Apolyton : idea for this readme!
ShallowGrave @ CivFanatics : finding the overrides bug in 8.0
Sto : helpful discussion and bug finding
DG : regular feedback and bug reports
surt Jan 20, 2006, 04:08 PM # Version History
# 9.0
# New land layout: earth. Selecting this will generate the earth, with source data
# from a blue marble projection. This is a highly accurate earth layout, with peaks
# and hills somewhat fuzzed to make for a more playable map.
# Also added: north america, south america, africa, europe, asia, australia
# All of the new maps are based on blue marble data, and so are going to be more accurate
# than they are going to be strategically well designed, and resource placement will
# be random rather than historically accurate. The current version will also have
# generated terrain, but the next version will probably include an option to use
# terrain sampled from blue marble data.
# New resource placement options: very many (places a _lot_ of resources), crazy, and
# crazy many. The crazy options place resources on any workable tile. This makes for
# a rather different gameplay experience.
# New terrain placement option: crazy which will place terrains randomly.
# New feature placement option: crazy which will place features randomly.
# Protected read / write of the smartmap config file so file errors won't cause a script
# error, and moved the config file to the user dir, which should help people not playing
# as admin on windows.
# Improved odds of generating flood plains in desert river tiles.
# Changed the grid infos to be compatible with mods with arbitrary number of map sizes, which
# will make smartmap compatible with mods that have more than the usual number of map sizes.
# This change also makes SmartMap maps closer to the usual size.
# Improved speed for calculating the altitude of plots on very land heavy maps.
# Call the python garbage collector and clean up memory usage to allow larger maps. I can
# now generate maps somewhere around 10% larger than before. I can now generate a map
# with twice the area of the usual huge, and start it on my 1G computer.
# Base CivIV = 200M, 280x84, 65% ocean = 500M, 280x84 0% ocean = 700M, that's roughly
# 13K or so per additional land tile allocated by CivIV, so keep that in mind when
# deciding on your ocean levels.
# Fixed a bug that tried to place continents too close to the map edges some times.
# Fixed a bug with regenerate map that occurs if you load a first turn savegame and then
# immediately try to regenerate it, thanks skovran for the report.
# Cleaned up code in player placement, improved speed.
# Added catches to player placement to prevent overlapping starts. If an
# overlapping start is somehow generated (a bug reported a couple of times),
# it will now fallback to standard placement mode. I'm unsure how an overlapping start
# can ever happen in the first place, but this should really guarantee it is impossible
# for it to get through and actually place the players that way.
# Fixed a bug that would sometimes misjudge whether or not to place additional players
# on a large continent.
# Improved the way continents are calculated to be more accurate in certain cases around
# blocking peaks, and improved performance.
# 8.7
# Added 3 great lakes options (few, normal, many). This will generate a map with a number
# of large lakes (large enough to typically have ocean tiles).
# Edge sea and corner sea were reversed in what they generated, fixed.
# Corrected the usage of cardinal directions, thanks to Sto for noticing. This turned out to
# be harmless, but would show up in the xml error log.
# Fixed bug with generating inland sea maps, thanks DG for noticing.
# Corrected minor math error in hill placement that was generating more hills than specified.
# Corrected disagreement between ocean percentage and size of central sea in such maps.
# Fixed problem with counting number of available sea resource spots that would place too
# many sea resources on certain styles of maps.
# Removed all used of CyPlot.isCoastalLand() because this method doesn't do what you'd expect.
# Forced central sea maps to keep the central sea away from the poles to prevent splitting
# the map in two.
# Speed up altitude calculation by simplifying the search for nearby ocean.
# Speed up wetness calculation by skipping water tiles.
# Speed up hash lookups by increasing step size.
# These speed improvements should knock about 10-20% off the total generation time.
# 8.6
# Correct the override width/height entries to reflect the 'standard'
# width and height numbers (previously this was rough, now it is exact).
# So these numbers now match what scripts that use the base XML produce.
# Added extra plains / extra grass options to the terrain options, which
# will produce more of that type of terrain.
# Added 'new world' coastal/inland start options, which will place start
# positions in the east (as new world) but also favor coastal or inland
# starts.
# Added 'no block' peak options. This forbids peaks from having ocean
# on both sides either vertically of horizontally. This prevents certain
# common cases of resource blocking that some people found annoying.
# Any such peak is reduced to a hill, as a result you will have less total
# peaks on your map.
# Improved performance of land placement in low sea width (removed unneeded checks).
# Improved performance of land placement in high sea width by spatially
# hashing the previously placed lands, and reducing the search for conflicting
# lands to nearby hash entries. This makes a huge difference on big maps with
# high sea levels selected (>50% faster).
# Improved distribution of hills and peaks so that small continents don't get
# a disproportionate amount of them.
# Tweaked up likelihood of floodplains slightly. You may see a bit more desert
# in temperate maps. If you don't like desert much you can of course turn it
# off or switch to tropical which has much less desert.
# Improved performance for placing resources on large maps with lots of resources.
# Overall performance improvements will no generate the most difficult type of map
# (huge, land heavy, high sea level map with 2 or more continents) in less than
# a minute on my p4m-1.8ghz.
# 8.5
# Performance improvements.
# Improved hill placement for a huge/65ocean/30hills map from 12 seconds to 2.
# Improved huge/65ocean/many resources from 90 seconds to 30.
# 8.4A
# Quick Fix for problem with placing players on pangea maps introduced in 8.4
# (would cause an endless loop, freezing civ iv on pangea and certain other
# maps where it couldn't decide the best continental distribution of players)
# 8.4
# Tweaked resource placement to obey minlatitude and maxlatitude for the stricter
# resource placement options (SmartMap few, and all clumping options).
# Tweaked resource rates some more based on forum feedback.
# Made some other adjustments to the fair resource distribution to simplify it, and
# to distribute resources a little more evenly in certain cases. Also improved
# chances that all expected resources will be placed.
# Added terrain options to place no desert, no snow, no snow/desert,
# no snow/desert/tundra, only plains, or only grass. If you wan't minimal
# snow/desert/tundra, play on tropical, and turn jungles to light if necessary.
# Added 'SmartMap restricted / most restricted' option to resource placement, which
# enforces every placement rule I understand, clumps both happy and health resources,
# and offers fewer (restricted)/much fewer (most restricted) resources in general.
# Move the version history for prior versions to end of file
# Added player/all inland/coastal placement options. Player inland will do its best
# to give the first player an inland start. Coastal prefers a coastal start. All
# attempts to do the same for all players (less likely to succeed, based on available
# map positions).
# Add single tile isles option. This make for a very wierd game in generic civiv, but
# was requested by people developing space/planet based variants.
# Fixed bug in override separation that caused it to behave always as if low sea level
# was selected instead.
# Added 'central pole' variation on all wrap options. This creates an icy pole in the
# center of the map, as if you were looking down on earth from above the north pole,
# also known as polar projection. This now allows you to have 0,1,2,3 poled maps,
# which you can envision as different ways to unwrap a spherical world onto a flat
# rectangular map.
# Fixed a small math error in determining the distance from the pole/equator which
# became obvious when working with the polar projection maps. This may cause you
# to see a little more snow/tundra than previously.
# 8.3
# Tweak tundra, snow, desert picking process to make more likely on small maps.
# Add new separation override to allow absolute control of continent separation.
# More rivers sourced from hills if there are few peaks.
# Added options for central, edge, and corner sea to the ocean selections to
# generate that style of map. Particularly, if you enjoy the 'central sea'
# map style, you can now generate that with SmartMap.
# Tweak resource rates to make whales not quite so common, and to address other
# resource rate comments reported.
# Place resources in placement order to try to prevent good map positions from
# being taken by resources placed in wrong order.
# Added SmartMap New World placement option. This will prefer to place civs
# only on continents in the eastern hemisphere. This option will default
# to ordinary smartmap placement if there are not at least 2 continents, or if there
# is not a continent at least 90% of which is located in the western hemisphere.
# 8.2
# Add option for 'no ocean' that will place nearly all land.
# Note: takes longer to generate high land count maps. Be patient.
# Add option for 'no ocean, no lakes' that will place all land.
# Improve the placement performance of smartmap placement on high land count
# maps by ruling out very low scoring placement positions earlier.
# This will improve overall map generation performance slightly.
# Small improvements to forest and lake placement, attempt to cure the
# rare 'all forest tiles' on normal forest problem (I've never reproduced
# this, but the chance that any such bug survived should be low.)
# Added 'smartmap random pick' option to all (smartmap controlled)
# menus, this makes a choice from among the more typically desirable
# options, and also stays random the next time you create a map,
# unlike the standard 'random' option, and even randomly re-picks if you
# choose to 'regenerate map'. I highly recommend using this in place of
# the standard 'random' option.
# 8.1
# Add Clump Health and Clump Both resource placement options.
# Clean up land placement code organization a little bit.
# Force release of spiral search memory, and reduce how far spiral search
# searches to improve performance.
# Fix the defaults for override with and height that were causing people
# to get out of memory errors.
# 8.0
# Use pickle to store last preferences.
# Tweaked the adjustment to rivers and lakes so that many rivers will be more
# noticeable, and few lakes will really cut down the amount of lakes.
# Fix resource rates for smaller maps.
# Allow start placement to place settlers on hills as well as flatlands.
# Weight hills for start placement appropriately to the defensive bonus.
# Add spiral search feature, this may be of use to other mapmakers, used in
# my script to assign fragments as belonging to the nearest continent. Spiral
# search is the most efficient method of doing a 'find nearest X' on any grid
# based map, assuming you don't have a list of all X available.
# On higher river levels, make hills more likely to start rivers.
# Make rivers a little more common in general. Make the automatic river for each
# sufficiently large continent always start from a hill or peak if one is
# available, or a random tile if no hill or peak is found.
# Improve river paths by using spiral search to measure distance to nearest ocean
# Don't flatten peaks on coast, as this can create interesting strategic issues,
# and also tended to leave far fewer than the expected number of peaks.
# Fix a bug in the start placement picker that was giving extra scores for the
# start plot when it was supposed to be scoring nearby plots.
# Adjust how fragments are generated, and the number of fragments for few/many,
# to make maps using smaller numbers of fragments look less chaotic. Fragments
# also now sort-of obey the sealevel rules: they are allowed to start anywhere,
# but can only grow into one neighboring continent, so they are more likely to
# create an archipelago type of continental extension, rather than so frequently
# causing continents to merge.
# New SmartMap Clump Happy resources option which distributes all happiness
# resources like the standard generator (in clumps so trade is more likely to be
# necessary, hence 'clump happy'), but other resources in the smartmap style so
# that the distribution is fairer.
# Corrected a small land counting problem that sometimes gave too much land for
# a given ocean percentage.
# Added a few new options to the override width and height to allow for generating
# random ranges of sizes, as a couple of people had requested that.
# 7.2
# Separate GoodyHut option from Bonuses, and add support for
# no/low/normal/high rates of goody huts.
# Add support for low/normal/high levels of resources (with low = 2/3rds
# and high = 4/3rds normal, same for goody huts).
# Rearrange all of the options to put the less commonly used ones at the end.
# Tweak up the default hills % slightly.
# Tweak up the river rate slightly.
# Make broad empty plains a little less likely by distributing hills better.
# Add some extra continent options, 1 per 2 players, 1 per 3, 1 per 4
# these may be easier for some to think about than picking an exact number.
# Added continent options 2 per player, 3 per, 4 per. These are good to use
# if you're using low sea levels to allow land blobs to merge.
# Improve the likelyhood that small numbers of continents are well separated.
# Improve the chance that player start plots will neighbor at least one hill.
# Added option to adjust the river and lake frequencies.
# Tweaked the width/height calculation so that super wide maps aren't as likely.
# Tweaked hills placement to make big empty plains less likely.
# Improved the resource distribution to get better strategic resource separation.
# Added no-continents option, which will result in all land being placed in
# fragments instead (looks suspiciously like 'archipelago').
# Fixed a bug in the counting of land resulting in fewer peaks than expected.
#
# 7.1
# After reading that Atlas can generate 1600x1600 maps (not that civiv can
# load them) decided to bump up the maximum width/height overrides so
# that if, in the future, civiv can handle such maps, SmartMap will be
# ready. Can now, hypothetically, generate 5000x5000 maps.
# Also, converted the units to map tiles, since that is probably less confusing
# for non map-scripters.
# Bump up the size of duel, tiny, small due to our allowance for more ocean
# and also because the actual chosen dimensions tend to result in a map with
# slightly smaller than the expected area.
# Areas Duel Tiny Small Standard Large Huge
# SmartMap: 80 140 220 360 560 860
# Standard: 60 104 160 273 416 640
# Make SmartMap strict default for feature generation.
# Tweak up the default ocean size due to the larger map size.
# 7.0
# Add new generation option: Land Style. Land style allows you to opt
# for less roundish continents, and also to allow for small independent
# land fragments separate from the main continents. When land fragments
# are generated, they may be generated anywhere, and may violate the
# sea level strategy guarantees, so use at your own risk. The less rounded
# continent options without land fragments will obey the sea level rules,
# but may be less fair.
# Based on a report of it being annoying to have your capital placed on
# the wrap-edge of the minimap, I now rotate the initial land placement
# to put the minimum number possible of land near the map wrap edge.
# While this does not guarantee this will not happen, it makes it highly
# unlikely.
# Further, made the first player always pick the center most start position
# if wrap is enabled. This should make single player games always have
# the human player start fairly well centered. This should absolutely
# guarantee that a single human player will not start with their capital
# on a map wrap edge.
# Fixed a couple of places where I did not consider y-wrapping correctly.
# But I guess no one plays y-wrap (or both wrap), or they'd have surely noticed.
# Introduce option 'SmartMap Strict' for feature generation. This will only place
# floodplains & tundra where the normal scripts would.
# Made floodplains on anything other than desert less likely, and oasis on tundra
# less likely for the non-strict feature generator.
# Enhanced the plot wetness calculator so plot wetness can be factored into more
# of the generation process.
# Improved the player placement rules to prefer not to place players initially
# on a stretch of land reaching into the ocean.
# Added ReadMeSmartMap.txt
# 6.1
# Tweak up number of hills for 'many hills'.
# 6.0
# Improved lake generation system, grows more lakes beyond one plot
# Numerous terrain relevance improvements. More desert&snow at high altitudes,
# less desert near water, etc.
# Changed continent computation to more accurately determine the large
# continents, which should as a side effect improve the fair resource
# distribution. Removed tiny continents which will never be player
# starts from the fair resource distribution.
# Improved tile wetness calculator to consider number of rivers and lakes
# touched by tile (a tile touched by fresh water on multiple sides is
# now more likely to shift from desert->plains->grass).
# Added a river originating at the highest point of each continent, which
# greatly improves the fairness of river distribution overall
# Changed forest/jungle options to allow independent choice of forest and
# jungle coverage (light,normal,heavy independently selectable for each)
# General code cleanup, reorganization, commenting
# Ran code through pychecker and cleaned all warnings, pychecker found a
# couple of legitimate bugs that may have improved the resulting maps.
# 5.1
# Improvements to fair bonus distribution algorithm.
# Fixed a typo bug causing python error on undefined edgeprob
# Tweak desert rate down slightly
# 5.0
# Work on refining the continent boundaries so water straights are not so
# obvious when you see the resulting cymap.
# Rewrite river generation, move it before terrain generation so terrains
# can consider rivers (allow grasslands and other 'wetter' terrain to be
# more common around rivers, as well as forests/jungle)
# Replace the standard river altitude function with one that seems to yeild
# better river paths
# Assorted terrain and feature improvements. Restored possibility of flood
# plains in desert, and made terrain tend to blob together more rather
# than appearing so completely random. Allowed hills to have terrain rather
# than always defaulting to grass (so desert/hills are now possible). I can't
# believe no one complained about that one.
# Found a major logic error in the player placement algorithm that was unfairly
# favoring near-lake placements (I has assumed CyPlot.isCoastalLand() was equivalent
# to asking: can I build a lighthouse?, this turned out not to be true).
# As a result, initial placement is much more likely to be coastal now, and
# this has a nice side effect of improving the average separation of players.
# Tweaked resource rates a little more based on various feedback.
# Replace standard lake addition function so we don't get lakes in odd places
# Futher performance optimization. The low and medium sea level options are
# now more than twice as fast, and the high sea level option is about 50%
# faster. I can now generate a huge map with low sea level in under a minute.
# After discovering that the map sizes in great plains are way off, resized my
# maps to the following settings:
# Duel Tiny Small Standard Large Huge
# SmartMap: 60 100 180 320 560 1000
# Standard: 60 104 160 273 416 640
# This is a bump up for everything except huge, which becomes slightly smaller,
# and thus hopefully usable by more people.
# Added related option to override the map width and height. You can now select
# your map size fairly precisely, including the ability to pick map sizes that
# are so large they may cause civiv to have problems. Up to 256x256 map positions,
# which would be a 1024x1024 map, with an area of over 1 million (compare to huge at
# an area of 16 thousand!) If you are able to generate a map of even 128x128 I'll be
# shocked. Nevertheless, the option is there. So no complaining that I made huge
# smaller! Just set your game to huge, then override the size to whatever you want.
# Or for a bizarre experience, set your map to duel, and override the size to whatever
# you'd like. For kicks I generated a 256x8 map, and that was just barely startable
# with my 1 Gig of memory. Minimap looks ridiculous.
# 4.2
# Increase goody hut count slightly, particularly on maps with lots of land
# 4.1
# Slightly refined smartmap resource placement to make distribution
# fairer between continents, and not to allow so many duped resources
# within one city radius
# Small upward tweak to resource rates
# 4.0
# Overall performance improvement:
# Now down to about:
# <5 seconds for duel,tiny,small
# 10 seconds for standard,
# 40 seconds for large,
# ~2 minutes on huge
# On a 1.8Ghz Pentium-M with 1Gig
# Optimize land placement speed by remembering all potential growth positions
# rather than looking for them randomly.
# Optimized and improved player placement function. No longer makes certain
# rare placement errors, and the speed is dramatically better, particularly
# for continents with a large number of players to be placed (pangea).
# Optimized bonus placement. This used to get very slow on large/huge maps due
# to making a pass through all tiles for each bonus type. Now makes one pass
# through all tiles and caches the result.
# Changed the player option read function to take a string rather than an index
# to make it clearer in code, and also make it impossible to break when
# changing the order of options in the list.
# Land areas are 20,40,90,210,500,1200 (duel,tiny,small,standard,large,huge)
# Compared to 15,24,48,88 ,154,252 for great plains.
# Smartmap rounds down calculated width and height,
# so the areas are not quite as big as they seem,
# but large and huge are noticeably bigger. This allows for more flexible
# use of the ocean coverage option. Note to firaxis: it would be a better
# design if in the expansion pack or a patch you passed the expected land
# area to the grid size function from the current mod! Then maps could
# dynamically size themselves to the expected land area and provide fair
# gameplay regardless of other chosen settings (and be compatible with mods
# that make use of different sized maps ... no more hardcoding like in
# great plains)!
# Note: I can just barely start a huge game with 1Gig memory. This implies
# firaxis is using somewhere in the neighborhood of 32k memory per tile.
# Good grief, what on earth are they storing!
# 3.2
# Add options for specifying weight of initial jungle/forest cover
# More performance optimizations
# 3.1
# Fix rare issue with placements landing too close together
# Slight tweaks to placement scoring to value early resources higher
# Fix issue with placements on separate continents too close together
# 3.0
# Re-enable climate selection, which may or may not be honored
# Restore 36-continent option, accidental deletion
# Create a better default option for each selector
# Un-smooth edges near poles
# Properly handle allowing continents to wrap on wrap axis
# Performance optimizations by reducing function call counts
# Custom player placement rules
# Complete replacement of bonus system
# Separate out goody hut placement and put in correct order
# Cleaner debug print messages
# 2.0
# Reduce bonus percentage for SmartMap bonus
# Allow standard bonus distribution as an option
# Bias width,height towards wrap direction
# un-straight-edge where continents meet
# SmartMap terrainGen allows more desert
# SmartMap featureGen suggests more forest and jungle
# Support for random ranges in number of continents
# 1.0
# Initial version
gunnergoz Jan 21, 2006, 09:47 AM Thank you! I'm going to try this one for sure and I'll give you feedback afterwards.
surt Jan 23, 2006, 12:06 PM Thank you! I'm going to try this one for sure and I'll give you feedback afterwards.
Please do. So far I have been happy to fix every complaint offered.
GoUtes53 Jan 24, 2006, 09:55 PM Is there a reason why you cannot select parameters for Climate?
surt Jan 25, 2006, 08:42 AM Is there a reason why you cannot select parameters for Climate?
Climate is not obeyed by some of the terrainGens I included. However, I've fixed that for version 3 and will post that soon (probably today ... i'm just finishing up an alternative player placement ruleset).
surt Jan 26, 2006, 11:59 AM Probably the most important new feature is that SmartMap now has custom player placement rules, which I think are somewhat fairer than the existing rules.
# Version History
# 3.0 Re-enable climate selection, which may or may not be honored
# Restore 36-continent option, accidental deletion
# Create a better default option for each selector
# Un-smooth edges near poles
# Properly handle allowing continents to wrap on wrap axis
# Performance optimizations by reducing function call counts
# Custom player placement rules
# Complete replacement of bonus system
# Separate out goody hut placement and put in correct order
# Cleaner debug print messages
surt Jan 30, 2006, 12:05 PM With this release, I think this map script is pretty close to done. Mostly this release features improved performance (generate maps faster), and a few minor bug fixes. I've had relatively little additional feedback or suggestions, so unless someone comes up with a good idea to add or finds a bug.....
# 4.0
# Overall performance improvement:
# Now down to about:
# <5 seconds for duel,tiny,small
# 10 seconds for standard,
# 40 seconds for large,
# ~2 minutes on huge
# On a 1.8Ghz Pentium-M with 1Gig
# Optimize land placement speed by remembering all potential growth positions
# rather than looking for them randomly.
# Optimized and improved player placement function. No longer makes certain
# rare placement errors, and the speed is dramatically better, particularly
# for continents with a large number of players to be placed (pangea).
# Optimized bonus placement. This used to get very slow on large/huge maps due
# to making a pass through all tiles for each bonus type. Now makes one pass
# through all tiles and caches the result.
# Changed the player option read function to take a string rather than an index
# to make it clearer in code, and also make it impossible to break when
# changing the order of options in the list.
# Land areas are 20,40,90,210,500,1200 (duel,tiny,small,standard,large,huge)
# Compared to 15,24,48,88 ,154,252 for great plains.
# Smartmap rounds down calculated width and height,
# so the areas are not quite as big as they seem,
# but large and huge are noticeably bigger. This allows for more flexible
# use of the ocean coverage option. Note to firaxis: it would be a better
# design if in the expansion pack or a patch you passed the expected land
# area to the grid size function from the current mod! Then maps could
# dynamically size themselves to the expected land area and provide fair
# gameplay regardless of other chosen settings (and be compatible with mods
# that make use of different sized maps ... no more hardcoding like in
# great plains)!
# Note: I can just barely start a huge game with 1Gig memory. This implies
# firaxis is using somewhere in the neighborhood of 32k memory per tile.
# Good grief, what on earth are they storing!
# 3.2
# Add options for specifying weight of initial jungle/forest cover
# More performance optimizations
# 3.1
# Fix rare issue with placements landing too close together
# Slight tweaks to placement scoring to value early resources higher
# Fix issue with placements on separate continents too close together
surt Feb 01, 2006, 03:17 PM For anyone interested in this script, have a look at the top of the thread. I've updated the first post with a shot of the new options available in v4, and the sample generations post with some samples from v4. Hopefully this will give everybody a clearer idea of what you get with this script lately.
easton Feb 01, 2006, 05:14 PM Looks great! Can't wait to try it out when I get home from work.
A Silly Goose Feb 01, 2006, 10:50 PM Ah, those new screenshots are just what I needed to be convinced to download this script. It looks great--that last row of maps looks especially interesting.
The only thing that really concerns me at all is that, although very much improved upon from previous versions, the generation methods you're using are still leaving the landmasses a bit predictable. A simple yet effective enough fix for it might be have a "Continent Size/Shape" option with "Even" and "Uneven" choices. The "Even" choice would generate maps they way they already are now, while "Uneven" would omit a number of the continent-dividing straights, creating a more unpredictable (and interesting) layout that will result in a wider range of strategic scenarios.
Really, though, all that's just based on the assumption that your script works by first building a big pangaea, and then running lines of sea/ocean across it in any one of a number of patterns.
At any rate, good luck with any further modifications you might make, as well as with any other projects you may persue!
surt Feb 02, 2006, 09:24 AM Ah, those new screenshots are just what I needed to be convinced to download this script. It looks great--that last row of maps looks especially interesting.
The only thing that really concerns me at all is that, although very much improved upon from previous versions, the generation methods you're using are still leaving the landmasses a bit predictable. A simple yet effective enough fix for it might be have a "Continent Size/Shape" option with "Even" and "Uneven" choices. The "Even" choice would generate maps they way they already are now, while "Uneven" would omit a number of the continent-dividing straights, creating a more unpredictable (and interesting) layout that will result in a wider range of strategic scenarios.
Really, though, all that's just based on the assumption that your script works by first building a big pangaea, and then running lines of sea/ocean across it in any one of a number of patterns.
At any rate, good luck with any further modifications you might make, as well as with any other projects you may persue!
That's actually not how it works. It decides the number of continents (based on your chosen options), then allows them to grow randomly. Have a look at the first and last entries on row 2: The first entry is 3 continents, the right two of which are close together and grow up to a straight, but the left hand one is just sitting off on its own. Similarly the last picture is 4 continents, with the 3 on the right growing until they get too close to each other, but again, the lonely left continent just sitting off by itself.
If you have sea level medium/high then continents are forbidden from growing into each other, and so continents that happen to start close together may wind up with just a straight between them. On the other hand, with sea level low, they are not forbidden from merging, so you'll see no straights, but you may not get the exact number of continents you asked for.
Anyway, the point is that what you are seeing is the continents pushing up against a forbidden growth zone as they grow. The forbidden zone has to be there for strategic reasons, but I'll look into whether I can do anything to make the straights a little less likely/obvious. To explain their purpose:
low sea level = no forced division of continents = may (or may not) have contact with all civs immediately
med sea level = enough division to usually forbid war (there is a rare apparent civiv bug that allows galleys to cross a single ocean tile)until galleon, but allowing for limited contact between civs when their coastal cities grow enough culture to touch culture borders
high sea level = enough division to prevent contact between continents until optics extends the sight range, and definitely forbids war until galleon.
So, if you do not like the straights, and are willing to accept not getting the exact continent count you ask for, just play on 'low' sea level. If you want a lot of ocean, it is perfectly ok to combine low sea level with high ocean percentage (in fact, high ocean % is another option that will tend to discourage straights from existing). Have a look at the third row of pictures (low sea level). If you look carefully, you may be able to tell that many of those shots are of multiple continent masses that have merged together (with the clue being there are subtle water lines almost causing division). Have a look at the middle picture on that row. That's definitely 4 continents, the central 2 of which have merged. And though it is probably hard for anyone but me to tell, the last picture on that line was definitely 6 continents which have merged into 2, each containing 3 of the original continents
Thanks for your comments, please do let me know if you have others. I'm very happy to try to fix the things that people don't like.
A Silly Goose Feb 02, 2006, 05:52 PM I can live with that. I was aware of the sea level thing, too, though I just figured it effected the "width" of the straights to create the merged effect.
You're right though--it's just a matter of playing with the settings more, and the straights aren't that big a deal anyhow :)
surt Feb 03, 2006, 10:11 AM I can live with that. I was aware of the sea level thing, too, though I just figured it effected the "width" of the straights to create the merged effect.
You're right though--it's just a matter of playing with the settings more, and the straights aren't that big a deal anyhow :)
Well, in any case, I'm trying to work on the land generation a bit to at least make the straights less straight and obvious in the next version.
roidesfoux Feb 03, 2006, 03:43 PM I just started my first game with your script, and it looks very nice. One thing I noticed, though was a tile which is "flood plains/plains". I'm not complaining or anything: I just thought you'd want to know
Rabbit_Alex Feb 04, 2006, 09:31 AM I've been getting some really nice maps from this but they take longer to load (because the script is complex I guess).
surt Feb 04, 2006, 11:01 AM I just started my first game with your script, and it looks very nice. One thing I noticed, though was a tile which is "flood plains/plains". I'm not complaining or anything: I just thought you'd want to know
I allow this. Flood plains is a 'feature' ala oasis which adds some food to whatever terrain it is on. It adds a sort of green grass overlay to the tile. It's one of the ways you can get meaninfully different maps from my generator than from any of the standard generators. If you don't want this to occur, just set feature generation to standard.
Update: I'm considering adding a 'smartmap strict' option to the various generators that will use the smartmap placement algorithm, but enforce all standard map restrictions. It may take me a little time to work out what 'rules' I'm violating though (the rules unfortunately aren't documented anywhere obvious to me). So if anyone knows one of the following, please let me know:
a) a place where all the feature/bonus/etc placement rules for maps are documented
b) any 'rules' violation you notice in my script (examples like the above flood plains)
Thanks.
surt Feb 04, 2006, 11:03 AM I've been getting some really nice maps from this but they take longer to load (because the script is complex I guess).
Yes, a large map can often take ~30 seconds to generate on my 1.8ghz pentium-m notebook, and a huge can take around 2 minutes. I'm looking into what I can do to make it faster, but unfortunately around 90% of the time is eaten up in preventing the continents from colliding in med/high sea level, and i've not yet come up with anything to do about that.
clut Feb 04, 2006, 12:47 PM Fantastic effort here.
I've been waiting for someone to create a more interesting map script.
Many thanks!
RED DIAMOND Feb 05, 2006, 01:30 AM Not to down "any" of the other makers of map scripts(I've tried them all) this is by far the BEST map script for CIV4 hands down. What a great effort my friend. Thx:goodjob:
lordroy Feb 05, 2006, 06:59 AM This is an awesome mapscript. It is all I use anymore.
-=R=-
surt Feb 05, 2006, 12:20 PM Thanks for all the kind words. Please do let me know if you have further ideas you'd like to see worked on. I have an assortment of touchups based on further experimentation and assorted feedback, which i'll try to get out in the next couple of days.
Stanque LeFeete Feb 05, 2006, 01:52 PM Tried your Smart map mod yesterday. It works with Fex FX marathon, AND Bueys Beyond Epic mod! Say, some really BIG maps can be made! I rate it a 9.5 mostly because of the better resource distribution! Thank you.
lordroy Feb 05, 2006, 02:24 PM I was playing on a normal map with Smartmap resources...
There was only 3 souces of iron on the map.
I did a reload.
Only 4 showed up.
Reload
Again only 3.
Is something up with Iron? It may need to be tweaked.
-=R=-
surt Feb 06, 2006, 08:58 AM I was playing on a normal map with Smartmap resources...
There was only 3 souces of iron on the map.
I did a reload.
Only 4 showed up.
Reload
Again only 3.
Is something up with Iron? It may need to be tweaked.
-=R=-
How many players and what size map were you on? Did it seem like the other resources were similarly low, or just iron?
Further followup: there's nothing special about iron, as far as my script is concerned. It ought to show up in roughly equal numbers as copper. There is some randomness involved, so you could just be getting unlucky.
One more followup: please try out version 5 and let me know if you feel the resource counts are better.
surt Feb 06, 2006, 05:25 PM # 5.0
# Work on refining the continent boundaries so water straights are not so
# obvious when you see the resulting map.
# Rewrite river generation, move it before terrain generation so terrains
# can consider rivers (allow grasslands and other 'wetter' terrain to be
# more common around rivers, as well as forests/jungle)
# Replace the standard river altitude function with one that seems to yeild
# better river paths
# Assorted terrain and feature improvements. Restored possibility of flood
# plains in desert, and made terrain tend to blob together more rather
# than appearing so completely random. Allowed hills to have terrain rather
# than always defaulting to grass (so desert/hills are now possible). I can't
# believe no one complained about that one.
# Found a major logic error in the player placement algorithm that was unfairly
# favoring near-lake placements (I has assumed CyPlot.isCoastalLand() was equivalent
# to asking: can I build a lighthouse?, this turned out not to be true).
# As a result, initial placement is much more likely to be coastal now, and
# this has a nice side effect of improving the average separation of players.
# Tweaked resource rates a little more based on various feedback.
# Replace standard lake addition function so we don't get lakes in odd places
# Futher performance optimization. The low and medium sea level options are
# now more than twice as fast, and the high sea level option is about 50%
# faster. I can now generate a huge map with low sea level in under a minute.
# After discovering that the map sizes in great plains are way off, resized my
# maps to the following settings:
# Duel Tiny Small Standard Large Huge
# SmartMap: 60 100 180 320 560 1000
# Standard: 60 104 160 273 416 640
# This is a bump up for everything except huge, which becomes slightly smaller,
# and thus hopefully usable by more people.
# Added related option to override the map width and height. You can now select
# your map size fairly precisely, including the ability to pick map sizes that
# are so large they may cause civiv to have problems. Up to 256x256 map positions,
# which would be a 1024x1024 map, with an area of over 1 million (compare to huge at
# an area of 16 thousand!) If you are able to generate a map of even 128x128 I'll be
# shocked. Nevertheless, the option is there. So no complaining that I made huge
# smaller! Just set your game to huge, then override the size to whatever you want.
# Or for a bizarre experience, set your map to duel, and override the size to whatever
# you'd like. For kicks I generated a 256x8 map, and that was just barely startable
# with my 1 Gig of memory. Minimap looks ridiculous.
# 4.2
# Increase goody hut count slightly, particularly on maps with lots of land
# 4.1
# Slightly refined smartmap resource placement to make distribution
# fairer between continents, and not to allow so many duped resources
# within one city radius
# Small upward tweak to resource rates
lordroy Feb 08, 2006, 09:09 AM Waaaay to many deserts in this version....
I have tried every variation.... and tried with everything set to standard....
Still tooo many deserts...
-=R=-
surt Feb 08, 2006, 10:45 AM Waaaay to many deserts in this version....
I have tried every variation.... and tried with everything set to standard....
Still tooo many deserts...
-=R=-
Try climate tropical in the short term, that will have the least desert. I'll look at tweaking it soon since I discovered a small bug in the script and I want to release an update.
surt Feb 08, 2006, 11:07 AM There was a small bug in v5 that would rarely cause a python script error to appear. If you've run into this, downloading this update will fix the issue. It also reduces the rate of desert, and makes a slight improvement to the fair distribution of bonuses algorithm.
lordroy Feb 08, 2006, 11:12 AM There was a small bug in v5 that would rarely cause a python script error to appear. If you've run into this, downloading this update will fix the issue. It also reduces the rate of desert, and makes a slight improvement to the fair distribution of bonuses algorithm.
I appreciate the update... I tried this out... I went in, standard everything, except I made 1 Pangea.
I open the worldbuilder. Lots of deserts. Regenerate. Open Worldbuilder. Still too many. Regenerate. Open Worldbuilder. Still too many.
I am not even seeing very many of anything else. Desert worlds one after another after another (I made 10 maps).
I was wondering... you have variables for "hills" and "peaks" ect.... could you also make variables for "deserts", "grasslands", "plains", and seperate "jungles" and "forests" instead of a combo of the 2.
Thank you for all the hard work.
-=R=-
surt Feb 08, 2006, 01:47 PM I appreciate the update... I tried this out... I went in, standard everything, except I made 1 Pangea.
I open the worldbuilder. Lots of deserts. Regenerate. Open Worldbuilder. Still too many. Regenerate. Open Worldbuilder. Still too many.
I am not even seeing very many of anything else. Desert worlds one after another after another (I made 10 maps).
I was wondering... you have variables for "hills" and "peaks" ect.... could you also make variables for "deserts", "grasslands", "plains", and seperate "jungles" and "forests" instead of a combo of the 2.
Thank you for all the hard work.
-=R=-
That definitely seems wrong. You're not generating climate: arid are you? What size world are you on?
When I generate v5.1 with climate:tropical I get roughly 1 in 50 tiles overall as desert. (large, tropical, pangea). With temperate maybe 1 in 30.
Could you screenshot a minimap for me?
Further followup: I'm going to give some thought as to how I might give finer grain control of the generation without having to explode the number of options.
lordroy Feb 08, 2006, 02:52 PM I ran this a few more times. I usually do standard size, but I tried large size this time:
http://dvlnsde.home.comcast.net/setup.jpg
and ran it 4 times:
http://dvlnsde.home.comcast.net/1.jpg
http://dvlnsde.home.comcast.net/2.jpg
http://dvlnsde.home.comcast.net/3.jpg
http://dvlnsde.home.comcast.net/4.jpg
As you can see, it isnt as bad now as it was in earlier version... but, let me do some screens and trials with standard size.
I really dont think that there should be so many deserts near water... maybe on a continent there should be 1-2 deserts near middle.... somewhat large, but not so many little patches...
I still think this is too many deserts.... but its not as bad as it could be. Will post again soon.
-=R=-
lordroy Feb 08, 2006, 03:09 PM OK Ran it exactly the same with "Standard" size:
http://dvlnsde.home.comcast.net/standard1.JPG
http://dvlnsde.home.comcast.net/standard2.JPG (http://dvlnsde.home.comcast.net/standard2.JPG)
http://dvlnsde.home.comcast.net/standard3.JPG (http://dvlnsde.home.comcast.net/standard3.JPG)
http://dvlnsde.home.comcast.net/standard4.JPG
I am seeing that the middle has LOTS of desert, no real lakes to speak of, no rolling grasslands or plains....
Am I just asking for too much?
I have one more test... Same as above, with "No Peaks" and "Few Hills"...
-=R=-
lordroy Feb 08, 2006, 03:31 PM Ok... this time Standard Size. Few Hills. No Peaks.
http://dvlnsde.home.comcast.net/StandardFHNP1.JPG
http://dvlnsde.home.comcast.net/StandardFHNP2.JPG
http://dvlnsde.home.comcast.net/StandardFHNP3.JPG
http://dvlnsde.home.comcast.net/StandardFHNP4.JPG
Now, these get kinda weird.... that one HUGE Pangea, and then the Desert World....
Not sure what is going on.... but...
Still tooo many deserts.
-=R=-
surt Feb 08, 2006, 03:44 PM My first recommendation is: play with climate: tropical for now. That will give you less desert than temperate.
I have a couple of ideas about making things a little more clumpy and less random, so i'll play with that for a while and see what I come up with.
lordroy Feb 08, 2006, 03:52 PM My first recommendation is: play with climate: tropical for now. That will give you less desert than temperate.
I have a couple of ideas about making things a little more clumpy and less random, so i'll play with that for a while and see what I come up with.
Ill try with Tropical.... but wont that give me craploads of jungle?
-=R=-
surt Feb 08, 2006, 03:58 PM Ill try with Tropical.... but wont that give me craploads of jungle?
-=R=-
Probably not as bad as the default generator. I'll also get in a selection soon to allow you to control jungle and forest independently.
Victorvanwavere Feb 08, 2006, 05:59 PM Hey Surt,
Really nice script,
I was wondering, is there a way to set the Forest/Jungle Re-growth rate?
Maybe have Low/Standard/High, but having Standard be higher on a Tropical word than Standard on a Temperate world.
Just a thought.
surt Feb 09, 2006, 08:34 AM Hey Surt,
Really nice script,
I was wondering, is there a way to set the Forest/Jungle Re-growth rate?
Maybe have Low/Standard/High, but having Standard be higher on a Tropical word than Standard on a Temperate world.
Just a thought.
I'm sorry, to the best of my knowledge that is controlled by the game/mod and not the map script.
surt Feb 09, 2006, 03:37 PM # Version History
# 6.0
# Improved lake generation system, grows more lakes beyond one plot
# Numerous terrain relevance improvements. More desert&snow at high altitudes,
# less desert near water, etc.
# Changed continent computation to more accurately determine the large
# continents, which should as a side effect improve the fair resource
# distribution. Removed tiny continents which will never be player
# starts from the fair resource distribution.
# Improved tile wetness calculator to consider number of rivers and lakes
# touched by tile (a tile touched by fresh water on multiple sides is
# now more likely to shift from desert->plains->grass).
# Added a river originating at the highest point of each continent, which
# greatly improves the fairness of river distribution overall
# Changed forest/jungle options to allow independent choice of forest and
# jungle coverage (light,normal,heavy independently selectable for each)
# General code cleanup, reorganization, commenting
# Ran code through pychecker and cleaned all warnings, pychecker found a
# couple of legitimate bugs that may have improved the resulting maps.
surt Feb 09, 2006, 03:39 PM Ill try with Tropical.... but wont that give me craploads of jungle?
-=R=-
try version 6 and see if it seems better. You can also now select tropical, with low jungle and your choice of forest, which will get you very little desert or jungle. Hopefully this will give you enough control to really get whatever sort of map you prefer.
lordroy Feb 09, 2006, 03:49 PM Ill give it a run tonight, thanx for the effort and hard work.
Check out SevoMod sometime... if you haven't already... http://forums.civfanatics.com/showthread.php?t=151611
-=R=-
surt Feb 10, 2006, 09:37 AM Ill give it a run tonight, thanx for the effort and hard work.
Check out SevoMod sometime... if you haven't already... http://forums.civfanatics.com/showthread.php?t=151611
-=R=-
I've looked at it some number of versions ago. It's good, but not a particularly good fit to my preferred playstyle, so I mostly stick with my own mod.
Victorvanwavere Feb 10, 2006, 11:37 AM Surt,
Glad to see V6 is out.
I was wondering though, currently your script generates worlds that are for the most part balanced.
On random Islands, they are all about the same size. This is great, especially on multiplayer games, but I do miss a totally random world. Where you don’t know what you are going to get.
I know you can create a kinda random world by setting the sea level low, but I was hoping for something a little more dramatic. Something where you can have large continents and small islands. Some connected, some separated by clusters of small islands.
Could you add an option in to create a totally random world.
surt Feb 10, 2006, 12:15 PM Surt,
Glad to see V6 is out.
I was wondering though, currently your script generates worlds that are for the most part balanced.
On random Islands, they are all about the same size. This is great, especially on multiplayer games, but I do miss a totally random world. Where you don’t know what you are going to get.
I know you can create a kinda random world by setting the sea level low, but I was hoping for something a little more dramatic. Something where you can have large continents and small islands. Some connected, some separated by clusters of small islands.
Could you add an option in to create a totally random world.
I will give some thought to how this might be done. It's somewhat difficult with the way my script is currently set up, which has each continent given essentially equal growth probability. Presumably to accomplish this I'd need to allow for more variation in the growth of continents. I really wish that the standard map had come with more than 3 sea levels, that would make it somewhat easier. Anyway, I'll see what I can do.
Randle Feb 10, 2006, 04:01 PM I don't seem to recall this occuring with the maps generated with the in-game generator; but my most recent game using SmartMap I ended up with my capital right on the x-wrap border, which made for a very annoying mini-map, especially since the continent was long and N-S.
Also, I thought I selected to have many hills, but they seem rather sparse, and it might just be me, but the map seems larger than the normal "Standard" map size.
Here's all the settings I had:
Size: Standard
Climate: Random
Sealevel: Random
Continents: random 2-5
Ocean: 60% ocean
Hills: many hills
Peaks: many peaks
Wrap: wrap x
Terrain: standard
Forest/Jungle: heavy forest/light jungle
Features: standard
Bonuses: standard
Start Placement: standard
Overrides: don't override
surt Feb 10, 2006, 05:30 PM I don't seem to recall this occuring with the maps generated with the in-game generator; but my most recent game using SmartMap I ended up with my capital right on the x-wrap border, which made for a very annoying mini-map, especially since the continent was long and N-S.
That's one I haven't run into, but it's definitely possible. I'd call that a bug with the mini-map, it ought to center itself around your capital. However, since I can't do anything about that, I'll give some thought about what to do to prevent that.
Also, I thought I selected to have many hills, but they seem rather sparse, and it might just be me, but the map seems larger than the normal "Standard" map size.
I'll have a look at the hills. As to the size, because I determine the width and height dynamically, I can't match the area of standard exactly. Instead, I start with an area, and find a width and height that closely match it. Here are the sizes I'm working with:
# Duel Tiny Small Standard Large Huge
# SmartMap: 60 100 180 320 560 1000
# Standard: 60 104 160 273 416 640
So my 'standard' sized map may have about 17% more tiles total, which allows for a little more flexibility in ocean levels. If you're using 60% ocean, that's a bit low compared to normal maps, so you may be noticing the extra land available. You might try 70% ocean and see if it seems more normal to you.
Randle Feb 10, 2006, 07:32 PM So my 'standard' sized map may have about 17% more tiles total, which allows for a little more flexibility in ocean levels. If you're using 60% ocean, that's a bit low compared to normal maps, so you may be noticing the extra land available. You might try 70% ocean and see if it seems more normal to you.
That might explain it; I was amazed that the nearest civ was so far away.
Byrath Feb 10, 2006, 08:53 PM Just downloaded this and checked out a few generated maps in the world builder.. it looks very good and I am looking forward to playing on them :)
One thing I noticed, it seems to generate floodplains oddly.. when I mouse-over the tile, it reads 'Floodplains/Plains', and the graphic for said tile is almost identical, graphically, to a normal plains tile. It may have a few more yellowish specks in it, but otherwise it looks the same. I am using the Blue Marble terrain mod.
Thanks for the great work on this map script! :D
lordroy Feb 11, 2006, 07:07 AM Yes, a large map can often take ~30 seconds to generate on my 1.8ghz pentium-m notebook, and a huge can take around 2 minutes. I'm looking into what I can do to make it faster, but unfortunately around 90% of the time is eaten up in preventing the continents from colliding in med/high sea level, and i've not yet come up with anything to do about that.
I have to say I really love what you have done with this. I would suggest that you do not try to optimize this unless you are confident that you can do so without taking away from the work you have done. The maps made with this script are so nice.... I really would hate to see you change things just for speed... Personally, I think that it needs very little else done to it...
But, either way, thanx for the hard work.
-=R=-
surt Feb 11, 2006, 10:35 AM Just downloaded this and checked out a few generated maps in the world builder.. it looks very good and I am looking forward to playing on them :)
One thing I noticed, it seems to generate floodplains oddly.. when I mouse-over the tile, it reads 'Floodplains/Plains', and the graphic for said tile is almost identical, graphically, to a normal plains tile. It may have a few more yellowish specks in it, but otherwise it looks the same. I am using the Blue Marble terrain mod.
Thanks for the great work on this map script! :D
Floodplains on plains and grass are allowed by my generator, and apparently allowed by the rules, but not generated in any of the default generators. Flood plains are considered a 'terrain feature' whereas plains and grass are 'base terrain'. I am considering adding a 'SmartMap strict' option to the next version which will disallow all feature/terrain combinations not generated by the standard generator.
In the meantime, if it bothers you enough, you can switch to standard mode for features. Otherwise, all it means is that you get an extra food on that tile.
surt Feb 11, 2006, 10:41 AM I have to say I really love what you have done with this. I would suggest that you do not try to optimize this unless you are confident that you can do so without taking away from the work you have done. The maps made with this script are so nice.... I really would hate to see you change things just for speed... Personally, I think that it needs very little else done to it...
But, either way, thanx for the hard work.
-=R=-
I've only done algorithmic optimizations (found different ways to accomplish the same math, essentially). They don't change the outcomes at all. I have optimized low and medium sea level quite a bit, by the way, those generate more than twice as fast as before. Even high sea level is somewhat improved, though only about 20%. Anyway, the time spent generating a huge map is down under a minute for me now, and large (which is the biggest I personally play) is under 30 seconds, so I'm happy enough with the speed. More time is now spent finding the starting positions than anything else, so I may spend some time trying to make that a little faster, but I'm mostly not too worried about the speed anymore.
As an aside, to anyone who does find things too slow, if you don't mind low/medium sea level, or standard player placement, those are the two options that will speed up my script the most currently.
Caradoc Feb 11, 2006, 12:13 PM Thanks for all the hard work.
The maps are looking better, but the bodies of land are still too globular. Compare your mid sized islands with the standard archipelagoes to see what I mean. It looks as though you start with a rectangular mass and then add an irregular coastline. The result does not look realistic, at least to me.
However, the level of control over terrain makes it all worthwhile!
surt Feb 11, 2006, 02:07 PM Thanks for all the hard work.
The maps are looking better, but the bodies of land are still too globular. Compare your mid sized islands with the standard archipelagoes to see what I mean. It looks as though you start with a rectangular mass and then add an irregular coastline. The result does not look realistic, at least to me.
However, the level of control over terrain makes it all worthwhile!
It actually starts from a single tile and grows in random directions. The result is statistically likely to be circular if the continents have sufficient space not to grow into each other (or into a pole). When they do get close together (or to a pole), then you tend to see more non-circular shapes.
I'm thinking about adding some options to allow for more tweaking of the growth patterns that might yield other shapes more of the time.
Sirian Feb 11, 2006, 07:53 PM It actually starts from a single tile and grows in random directions. The result is statistically likely to be circular if the continents have sufficient space not to grow into each other (or into a pole). When they do get close together (or to a pole), then you tend to see more non-circular shapes.
I was going to say... Judging by the screens, there's lots of rugged coastline but the shapes are all round and roughly equal. We do have a setting that will produce about the same kind of result (Pangaea, Solid shoreline) but only a third of the time that option is selected and only 10% of "Random Shoreline" Pangaea maps. ... Well, and it is also available 100% of the time in the Balanced script.
Getting more variance out of your continents will take some creativity. I had the luxury of not having to worry too much about it, since the Fractal generator was already on hand, and I could get more out of making that dance and sing than seemed worthwhile to invest in designing an alternative system that would do approximately the same thing in the end. :crazyeye:
I'm thinking about adding some options to allow for more tweaking of the growth patterns that might yield other shapes more of the time.
Good luck. I'm sure there are numerous solutions, and some may come out with significantly different results than the stock scripts.
- Sirian
Byrath Feb 11, 2006, 11:31 PM Floodplains on plains and grass are allowed by my generator, and apparently allowed by the rules, but not generated in any of the default generators. Flood plains are considered a 'terrain feature' whereas plains and grass are 'base terrain'. I am considering adding a 'SmartMap strict' option to the next version which will disallow all feature/terrain combinations not generated by the standard generator.
In the meantime, if it bothers you enough, you can switch to standard mode for features. Otherwise, all it means is that you get an extra food on that tile.
Ahh I see. I will switch to standard mode for features then .. seems a bit unbalancing to have multiple 4F, 1P, 1C tiles within range of my capital city. :lol:
Thanks for the info! :)
surt Feb 12, 2006, 10:10 AM I was going to say... Judging by the screens, there's lots of rugged coastline but the shapes are all round and roughly equal. We do have a setting that will produce about the same kind of result (Pangaea, Solid shoreline) but only a third of the time that option is selected and only 10% of "Random Shoreline" Pangaea maps. ... Well, and it is also available 100% of the time in the Balanced script.
Getting more variance out of your continents will take some creativity. I had the luxury of not having to worry too much about it, since the Fractal generator was already on hand, and I could get more out of making that dance and sing than seemed worthwhile to invest in designing an alternative system that would do approximately the same thing in the end. :crazyeye:
Mostly I wanted one script which could produce a whole range of options using random, plus I particularly wanted to be able to enforce the contact/intercontinental war rules, which was the biggest single item I could not see how to do building on the existing scripts (which quite possibly may be related to not fully being able to understand all of the tweaks available on the fractal generator). And really my motivation in starting on this at all was about 60% a desire to learn python, 30% to do something unique to keep myself active in the games business for my resume, and really only about 10% about actually generating maps.
Good luck. I'm sure there are numerous solutions, and some may come out with significantly different results than the stock scripts.
- Sirian
Thanks, and thanks again for taking time to answer my questions. Oh how I wish I had taken longer searching for your helpful answers before I got started. I had about 50% of all the work done (by trial and error and searching through the existing scripts) before I even discovered CvMapScriptInterface. :cry:
If you feel like answering one more question for me: does CvPythonExtensions exist in accessible python somewhere? It's the one thing apparently preventing me from properly running pychecker on my scripts (which would be nice for catching programming errors). Do you use any tool for lint checking python?
--doug (surt)
surt Feb 12, 2006, 10:17 AM Ahh I see. I will switch to standard mode for features then .. seems a bit unbalancing to have multiple 4F, 1P, 1C tiles within range of my capital city. :lol:
Thanks for the info! :)
Yes, it may well alter the typical game flow, though i'd note that it probably will not overly significantly advantage you over the AI, because the extra food is factored into the start location picking, so the AI is likely to have an equally good position.
Anyway, having thought this over, I am now implementing a strict option for the next version.
RSL Feb 12, 2006, 10:55 AM Floodplains on plains and grass are allowed by my generator, and apparently allowed by the rules, but not generated in any of the default generators. Flood plains are considered a 'terrain feature' whereas plains and grass are 'base terrain'. I am considering adding a 'SmartMap strict' option to the next version which will disallow all feature/terrain combinations not generated by the standard generator.
In the meantime, if it bothers you enough, you can switch to standard mode for features. Otherwise, all it means is that you get an extra food on that tile.
Also, I saw an Oasis in some Tundra. It was kind of cool, but I wonder about the authenticity of it. Perhaps it could be written off as some kind of arctic floral bonanza. Anyone?
ETA: Also some Floodplains/Grassland/Hills which kind of rocks, if is a little cheaty.
surt Feb 12, 2006, 01:43 PM Also, I saw an Oasis in some Tundra. It was kind of cool, but I wonder about the authenticity of it. Perhaps it could be written off as some kind of arctic floral bonanza. Anyone?
ETA: Also some Floodplains/Grassland/Hills which kind of rocks, if is a little cheaty.
Oasis in tundra is quite real (on earth):
http://www.msnbc.msn.com/id/8063227/
is one example, a google search will turn up lots of examples.
Oasis, technically, is a fertile region produced by fresh water in an otherwise arid region (tundra or desert).
Update: nevertheless, I'm making it less likely in the next version of the smartmap feature generator, and impossible in the smartmap strict feature generator that I'm adding.
RSL Feb 13, 2006, 09:09 AM I gotta say... After playing with this map a few times yesterday, it completely rocks! A ton more variety than I expected from some of the other scripts I've loaded. You, sir, are a god among modders.
surt Feb 13, 2006, 04:06 PM This release cleans up a few bugs that showed up in testing non-standard wrap options, adds a new readme file explaining what you can do with all of the options, and adds a new option 'land style' which will allow you to generate continental fragments and oddly shaped continents.
# Version History
# 7.0
# Add new generation option: Land Style. Land style allows you to opt
# for less roundish continents, and also to allow for small independent
# land fragments separate from the main continents. When land fragments
# are generated, they may be generated anywhere, and may violate the
# sea level strategy guarantees, so use at your own risk. The less rounded
# continent options without land fragments will obey the sea level rules,
# but may be less fair.
# Based on a report of it being annoying to have your capital placed on
# the wrap-edge of the minimap, I now rotate the initial land placement
# to put the minimum number possible of land near the map wrap edge.
# While this does not guarantee this will not happen, it makes it highly
# unlikely.
# Further, made the first player always pick the center most start position
# if wrap is enabled. This should make single player games always have
# the human player start fairly well centered. This should absolutely
# guarantee that a single human player will not start with their capital
# on a map wrap edge.
# Fixed a couple of places where I did not consider y-wrapping correctly.
# But I guess no one plays y-wrap (or both wrap), or they'd have surely noticed.
# Introduce option 'SmartMap Strict' for feature generation. This will only place
# floodplains & tundra where the normal scripts would.
# Made floodplains on anything other than desert less likely, and oasis on tundra
# less likely for the non-strict feature generator.
# Enhanced the plot wetness calculator so plot wetness can be factored into more
# of the generation process.
# Improved the player placement rules to prefer not to place players initially
# on a stretch of land reaching into the ocean.
# Added ReadMeSmartMap.txt
surt Feb 13, 2006, 04:07 PM Here's the non-version history contents of the readme since it may be helpful.
ReadMeSmartMap.txt
ReadMe file describing how to use SmartMap, and its various features.
Sections:
1) How to use
2) Options
3) Thanks
4) Version History
1) How to use
Extract the SmartMap.py to your CivIv install directory's PublicMaps
folder. Start the game, and select Single Player followed by Custom Game.
On the option titled 'Map:' select SmartMap as the map. Set other options
to your liking (I suggest trying all the defaults first!), and Launch!
A common error is to extract to civdir\PublicMaps\SmartMap\SmartMap.py. You
want to just have civdir\PublicMaps\SmartMap.py
Be patient. This script is slower than many of the default scripts. A large
map takes about 30 seconds to generate on my 1.8ghz pentium-M laptop. Huge
takes close to a minute. Pangea is the slowest to generate, picking fair
start locations takes a lot longer.
2) Options
Options are the point of SmartMap. There are a bunch of them. I will
describe how to use each of them in turn to get just the map you are
looking for.
Map: SmartMap, otherwise you're not using SmartMap!
Size: Duel, Tiny, Small, Standard, Large, Huge. SmartMap will use this
setting to determine the overall area of the map, unless you choose to override
the width and height manually, as explained later. SmartMap picks a random
width and height that produce the required area, so not all maps will be the
same shape (if you want to force a specific shape, use the overrides
described later).
Climate: Temperate, Tropical, Arid, Rocky, Cold. These mean approximately
what they do in the normal map scripts. Tropical has less desert and jungle than
you would get in the normal generator. If you feel like you get too much tundra
and snow in temperate, try tropical. Arid produces a lot of desert. Rocky means
an extra boost to hills and mountains. Cold means more snow and tundra.
Sealevel: low, medium, high. This option is used by SmartMap in a unique way.
Since SmartMap offers a direct ocean control, sealevel is used to control inter
continental strategy. In particular:
Low = all land on the map MIGHT be reachable by galley
Medium = it is very unlikely you will be able to reach another continent by galley,
but contact between civs on different continents may happen early due to
influence borders touching (it is only possible to reach another continent
occasionally by galley due to a bug in civiv that will rarely allow a galley
to enter an ocean tile).
High = guaranteed that you cannot reach another continent by galley, and civ contact
between different continents will not happen until two near as possible cities
both reach level 3 culture, or caravel (almost always caravel happens first).
This option is not guaranteed to be enforced if you select a non-default land style, as
explained later.
Era / Speed: These options are not affect by and do not affect SmartMap
Continents: Controls the number of continents generated by the script. Each option is fairly
self explanatory. On low sea level, continents are permitted to merge, so you may receive less
than the expected number of continents. You may also receive less than the expected number if
the script cannot find enough room (as might happen if you select duel size with 36 continents).
You may receive more than the expected number if you select a non-default land style, as explained
later.
Ocean: determines the percentage of ocean to be used on the map. Note that selecting low ocean
levels may result in a map with significantly more useful land area than is typically expected for
a given size of map, and may cause a gameplay imbalance.
Hills: allows you to specify what percentage of the land area should be coverd in hills.
Peaks: allows you to specify what percentage of the land area should be coverd in peaks.
Wrap: allows you to specify whether the map wraps around the border in x and/or y. X wrapping is
the standard circumnavigatable globe you probably expect, but the other options may provide for
an entertainingly different gameplay experience.
Terrain: selects a terrain generator. The terrain generator decides if a given land or hill plot is
a desert, plains, grass, tundra, or snow. The oasis and great plains generators are taken from those
scripts, while standard is just what you normally get on default scripts. SmartMap is a custom terrain
generator that knows how to generate terrain for all kinds of map setups. I recommend SmartMap.
Forest/Jungle: allows you to specify if you'd like more or less than the standard amount of forest and
jungle. Note that this option only affects the results of the SmartMap feature generator.
Features: selects a feature generator. Features are things like oasis, flood plains, forest, and jungle.
They go on top of the base terrain to enhance it in some way. Again, the oasis and great plains options
are just what you'd expect from those scripts. Note that you do NOT have to match terrain and feature
generators. Oasis terrain with Great Plains features works just fine, as do all other combinations.
The default SmartMap feature generator generates a few combinations that do not occur in the standard
scripts, in particular things like floodplains on grass are possible, and oasis will occassionally be seen
on tundra. These are things that happen on earth, and so are 'realistic' but some may find undesireable
because they aren't normal in the sense of the default scripts. If you are one of these people, there is
the SmartMap Strict option, which to the best of my knowledge will not generate any combinations not found
in the default scripts. I recommend either SmartMap or SmartMap strict.
Bonuses: selects how bonuses are placed. You can choose from the standard placement or SmartMap placement.
SmartMap attempts to be fairer about how resources are placed strategically. I recommend SmartMap. This
option also controls the placement of goody huts. SmartMap goody huts aren't much different from standard.
Start Placement: selects how player start positions are determined. The SmartMap option attempts to do a
fairer job of placing players based on an analysis of the positions of strategic resources, and is also
more likely to place your initial settler on a tile with one tile of ocean access so that your capital can
build ocean buildings.
Override width/height options: these options allow you to force SmartMap to generate a specific size of map
to your liking. This can allow you to generate absolutely huge maps beyond the size that your computer
memory can hold, so be careful with this. The sizes are multiplied by 4 in each direction to determine
the final number of plots, so a 64x32 map is really 256 tiles wide and 128 tiles tall. A SmartMap 'huge'
map is 16,000 tiles total area, so the 64x32 map described = 256x128 tiles = 32,768 tiles would be more
than twice the size of SmartMap's huge, which is in turn nearly twice as big as a default map's huge. Note
that this allows you to play a very big map on duel, which would be a wierd experience, as many of the pacing
elements of the game assume that you only have a certain amount of landmass to work with.
Land Style: this option controls a couple of special features that are more dangerous to use than the others,
and so are reserved for last. First, you can control how round your continents will turn out. Rounder
continents have a tendency to be more fair, so very round is the default. As you transition to somewhat or
least round, you will get odder continent shapes which various people have requested, or find to be
'more realistic'. Independently, you may also choose a level of fragments. Fragments are little pieces
of land added randomly to the map which will appear as archipelagos or odd continent outgrowths, or tiny
islands. You can get all sorts of interesting growth patterns with these. However, since they may be
placed anywhere, they may violate the sea level guarantees of separation. They may completely join
continents, or make them reachable by galley. Nevertheless, some people wanted this as another way to
have more varied or realistic maps. The default for this option is very round, no fragments, which provides
the most guarantees of fair gameplay, particularly for multiplayer games. For single player games, you
may have fun seeing what interesting other types of maps you can get with this option.
3) Thanks
I'd like to thank the following people for their contributions:
Sirian : for answering a number of questions about how map scripts work
A Silly Goose @ CivFanatics : for early feedback
lordroy @ CivFanatics : for lots of feedback and screenshots
Victorvanwavere : suggestion to have a forest/jungle setting & what became land style
Randle @ CivFanatics : report of getting capital on wrap border
Silver14 @ Apolyton : report of too many very tall maps when x-wrapping and other early feedback
alms66 @ Apolyton : also suggested the forest/jungle setting, and other early feedback
Commander Bello @ Apolyton : manual width/height override and other feedback
skodkim @ Apolyton : assorted feedback
battists @ Apolyton : idea for this readme!
surt Feb 13, 2006, 05:28 PM Here are some samples of the variety you can now get with this script. The top row are high sea level, second is medium, third is low. The other settings are an assortment designed to show a variety of interesting results.
http://ptth.net/civiv/SmartMapSamplesV7.jpg
A Silly Goose Feb 13, 2006, 07:22 PM Downright amazing, man. You know you've got a great script when it can generate both very strategically fair maps as well as more chaotic ones.
This has definitely become the Blue Marble of map scripts.
Koyaanisqatsi Feb 14, 2006, 02:12 PM Cool, thanks for version 7.0... I hope I don't see those sea horses again (in v6 I saw some horses appear off the coast, and explode like good huts).
Any clue why goody huts (in custom map scripts) often explode and don't regenerate when they are revealed from the fog of war? I never noticed this before in normal games.
goody hut frequency and bonus frequency would be nice for future versions... I often want to turn off good huts.
My problem with wrap y are the flashing trees in the fog of war... trees need to be kept a couple squares from the poles or something... at least until the game is patched to fix it.
Victorvanwavere Feb 14, 2006, 03:08 PM Great work Surt!
roidesfoux Feb 14, 2006, 05:30 PM I think your script is great. The only complaint I had was that the continents were too regular and there weren't any small islands. The newest version fixed that, but I've found a new problem. There have been several maps with large regions of plains. No fresh water, no hills, and no resources. I've seen one at least twice as big as the one in my screenshot. Can I get rid of these through tweaking the options?
-RdF
Civilicious Feb 14, 2006, 05:42 PM Dude, go to the post on the front page where you posted the original shots and replace them with some of the examples from the latest version. I checked this thread out awhile back and didn't care for those pics much so I didn't download your script. Happened to check out the last page in the thread today and was blown away by what you have done. So put those new shots up on the front page where people can see them!!!
Byrath Feb 14, 2006, 06:56 PM Version 7! :clap:
Any clue why goody huts (in custom map scripts) often explode and don't regenerate when they are revealed from the fog of war? I never noticed this before in normal games.
I am almost positive this can happen in any game. I believe it occurs when you reveal a goody hut, do not collect it, and a rival Civ collects it whilst in the fog of war.
Koyaanisqatsi Feb 14, 2006, 10:53 PM I am almost positive this can happen in any game. I believe it occurs when you reveal a goody hut, do not collect it, and a rival Civ collects it whilst in the fog of war.
I've seen that happen. But I also have a few times (in custom scripted maps) had my scout move into the black revealing a hut, which it should be able to get on the next turn. There are no other AIs on the continent... and the hut still goes poof.
surt Feb 15, 2006, 07:37 AM Cool, thanks for version 7.0... I hope I don't see those sea horses again (in v6 I saw some horses appear off the coast, and explode like good huts).
Any clue why goody huts (in custom map scripts) often explode and don't regenerate when they are revealed from the fog of war? I never noticed this before in normal games.
goody hut frequency and bonus frequency would be nice for future versions... I often want to turn off good huts.
My problem with wrap y are the flashing trees in the fog of war... trees need to be kept a couple squares from the poles or something... at least until the game is patched to fix it.
I will go ahead and split out goody hut and resource frequencies so you can control those, that's a good option to have.
If you actually want to try wrap y you may find that it works with my script since my script always keeps all features other than ice more than 2 tiles away from the edge. (not that I play it much myself, but i've tried it a couple times and not noticed a problem).
Also, I agree with the other poster on fog of war ... if you line-of-sight a goody hut that has been picked up by another player, but was under fog-of-war then it has to kaboom.
surt Feb 15, 2006, 07:43 AM I think your script is great. The only complaint I had was that the continents were too regular and there weren't any small islands. The newest version fixed that, but I've found a new problem. There have been several maps with large regions of plains. No fresh water, no hills, and no resources. I've seen one at least twice as big as the one in my screenshot. Can I get rid of these through tweaking the options?
-RdF
Well, you can certainly try some combination of the following:
1) increase the hills/peaks rate
2) try tropical, which has more rivers
3) wait for next update where i'll allow you to increase the resource rate
4) increase your forest level
Since the map script has a great deal of randomness, there is certainly always going to be a chance of getting an uninteresting area. I will take a look and see if I can spot anything happening, though, just in case.
surt Feb 15, 2006, 07:50 AM Dude, go to the post on the front page where you posted the original shots and replace them with some of the examples from the latest version. I checked this thread out awhile back and didn't care for those pics much so I didn't download your script. Happened to check out the last page in the thread today and was blown away by what you have done. So put those new shots up on the front page where people can see them!!!
Done. Thanks, good suggestion.
surt Feb 15, 2006, 07:56 AM I've seen that happen. But I also have a few times (in custom scripted maps) had my scout move into the black revealing a hut, which it should be able to get on the next turn. There are no other AIs on the continent... and the hut still goes poof.
I believe barbarians can poof huts.
There is absolutely no difference between the way that my script adds huts vs the way standard scripts add huts, the only difference is in number and layout. The selection of tiles on which huts are allowed to be placed are exactly the same.
Civilicious Feb 15, 2006, 01:25 PM Surt, I know someone has mentioned it in the thread already, but I am noticing large areas of plains sometimes, with no terrain features. There are some resources scattered about but no forests, hills, peaks, rivers, etc. in these large plains areas. I had one large continent almost entirely plains, with some deserts sprinkled in here and there. Also river generation needs to be pumped up a bit with more/longer rivers. The landmasses look great though, really excited about where you are going with this.
lordroy Feb 15, 2006, 01:48 PM Surt, I know someone has mentioned it in the thread already, but I am noticing large areas of plains sometimes, with no terrain features. There are some resources scattered about but no forests, hills, peaks, rivers, etc. in these large plains areas. I had one large continent almost entirely plains, with some deserts sprinkled in here and there. Also river generation needs to be pumped up a bit with more/longer rivers. The landmasses look great though, really excited about where you are going with this.
Ya I noticed this also... especially the lack of rivers, but I was so glad to get rid of all the deserts that I was not going to complain.
-=R=-
PBaron Feb 16, 2006, 06:11 AM First off, I wanted to say what a great job you did on this map generator. I have tried out a few of the settings, and even on tropical, it doesn't seem to be generating very many rivers. I was wondering if you could put a River percentage meter or something in future versions.
Also, I noticed that the maps I generate are extremely wide and not tall at all. Seems like a 4:1 ratio of width to height, what can I do to make it more rectangular or square?
Keep up the good work!
surt Feb 16, 2006, 09:54 AM Surt, I know someone has mentioned it in the thread already, but I am noticing large areas of plains sometimes, with no terrain features. There are some resources scattered about but no forests, hills, peaks, rivers, etc. in these large plains areas. I had one large continent almost entirely plains, with some deserts sprinkled in here and there. Also river generation needs to be pumped up a bit with more/longer rivers. The landmasses look great though, really excited about where you are going with this.
Based on your and Lordroy's comments I'll go ahead and tweak up the base river rate, and I'll also look at adding a river rate control of some kind.
surt Feb 16, 2006, 10:45 AM First off, I wanted to say what a great job you did on this map generator. I have tried out a few of the settings, and even on tropical, it doesn't seem to be generating very many rivers. I was wondering if you could put a River percentage meter or something in future versions.
Also, I noticed that the maps I generate are extremely wide and not tall at all. Seems like a 4:1 ratio of width to height, what can I do to make it more rectangular or square?
Keep up the good work!
You can override the width & height to whatever you want. The next version will come with hints on what sizes are appropriate, so that will be easier to do. Otherwise .. it's pretty random.
I went in and looked at the algorithm for generating a width and height. I've tweaked it a bit so that the default maps should get roughly no more than 3x ratio of width to height.
Koyaanisqatsi Feb 18, 2006, 12:11 PM If you actually want to try wrap y you may find that it works with my script since my script always keeps all features other than ice more than 2 tiles away from the edge. (not that I play it much myself, but i've tried it a couple times and not noticed a problem).
Also, I agree with the other poster on fog of war ... if you line-of-sight a goody hut that has been picked up by another player, but was under fog-of-war then it has to kaboom.
I haven't tried wrap y alone... but with "wrap both" land can definitely overlap the edges.
(The goody hut problem I see must not be in the scripts, there is something buggy in the game... I have seen goody huts go perma-poof when entering worldbuilder right after regenerating a map. It is the same effect as the illegal land resource on water going poof.)
Bringa Feb 18, 2006, 12:14 PM My problem doesn't seem to have anything to do with this mapscript in particular, so I propose we move the discussion to the general thread I opened: http://forums.civfanatics.com/showthread.php?t=159845
Hi,
I tried using this mapscript with Kael's Fall From Heaven mod. Here's what I do so you can see when the error appears:
I start CIV 4
I go for Advanced / Load a Mod / Fall From Heaven 095
I press OK on "The game needs to restart"
The game restarts; soon as the progress bar is full and the screen goes black, I get a dialog saying "Failed to load Python module SmartMap".
Should I talk to Kael about this or do you know what could be causing this?
[edit] Hm, something seems to be wrong with my CIV. When I start a normal unmodded game and go for Single Player, I get the error "Failed to load python module SmartMap"; when I try to turn on python error msgs for debugging (in the .ini file), the game hangs during the startup phase when it hits "Initializing Python". Any clue what could be wrong?
[edit number 2] This also happens with STO's mapscripts I downloaded from this forum; I assume it's something on my side.
surt Feb 18, 2006, 03:04 PM Koyaanisqatsi: sorry, I misspoke: land is definitely allowed on the wrap-edges, just not on the non-wrap edges. So on wrap both i would expect land to occur on both edges. Wrap-neither would be the case where I would expect no land at any border. However, since I now place as little land as possible on the wrap-border, this problem should be relatively rare, and hopefully firaxis will fix whatever the wrap issue is in their code in the next patch. As to the poofing items ... I think I've seen what you're talking about. I suspect that these may be cases of items not getting cleaned up when regenerating maps (a leftover item is in an illegal place on the new map). Would definitely be a firaxis side bug if so.
Bringa: does sound like you have something wrong in your configuration, but it's not obvious what. See my response to your question in your other thread though, and see if anything I said there helps your situation.
surt Feb 18, 2006, 03:07 PM This small update adds a river/lake frequency control, and a new '0 continents' continent option which makes for a very arhcipelago style of game. Also an assortment of other tweaks.
# 7.2
# Separate GoodyHut option from Bonuses, and add support for
# no/low/normal/high rates of goody huts.
# Add support for low/normal/high levels of resources (with low = 2/3rds
# and high = 4/3rds normal, same for goody huts).
# Rearrange all of the options to put the less commonly used ones at the end.
# Tweak up the default hills % slightly.
# Tweak up the river rate slightly.
# Make broad empty plains a little less likely by distributing hills better.
# Add some extra continent options, 1 per 2 players, 1 per 3, 1 per 4
# these may be easier for some to think about than picking an exact number.
# Added continent options 2 per player, 3 per, 4 per. These are good to use
# if you're using low sea levels to allow land blobs to merge.
# Improve the likelyhood that small numbers of continents are well separated.
# Improve the chance that player start plots will neighbor at least one hill.
# Added option to adjust the river and lake frequencies.
# Tweaked the width/height calculation so that super wide maps aren't as likely.
# Tweaked hills placement to make big empty plains less likely.
# Improved the resource distribution to get better strategic resource separation.
# Added no-continents option, which will result in all land being placed in
# fragments instead (looks suspiciously like 'archipelago').
# Fixed a bug in the counting of land resulting in fewer peaks than expected.
#
# 7.1
# After reading that Atlas can generate 1600x1600 maps (not that civiv can
# load them) decided to bump up the maximum width/height overrides so
# that if, in the future, civiv can handle such maps, SmartMap will be
# ready. Can now, hypothetically, generate 5000x5000 maps.
# Also, converted the units to map tiles, since that is probably less confusing
# for non map-scripters.
# Bump up the size of duel, tiny, small due to our allowance for more ocean
# and also because the actual chosen dimensions tend to result in a map with
# slightly smaller than the expected area.
# Areas Duel Tiny Small Standard Large Huge
# SmartMap: 80 140 220 360 560 860
# Standard: 60 104 160 273 416 640
# Make SmartMap strict default for feature generation.
# Tweak up the default ocean size due to the larger map size.
dalwand Feb 20, 2006, 07:31 AM link to download is dead now.
Darn.
dalwand Feb 20, 2006, 07:35 AM Never mind, link = alive again !
Crash757 Feb 20, 2006, 09:31 AM Random map size option (with override) is f*cked up. It allmost always chooses so big maps which are impossible to load :cry:
surt Feb 20, 2006, 11:04 AM Random map size option (with override) is f*cked up. It allmost always chooses so big maps which are impossible to load :cry:
Unfortunately, that's beyond my control, the script isn't informed when the 'Random' choice is selected. So in order to make big sized maps available for those who want them, it pretty much requires that 'random' overrides width and height are not valid options.
You can either choose random for map size (in which case you'll get a random pick of duel, tiny, small, standard, large, huge), or you can specify the exact map size that you want with the overrides. Note that even if you just pick (for example) large, and leave the overrides set to their default (no override) you're still getting a randomly sized map (just one that approximately fits the size of 'large'). The width and height are still random, so I think there's still plenty of size randomness available here.
The overrides were specifically provided for those who wanted to exactly control the size of the map they played on.
That said, you can fix this for yourself. Edit SmartMap.py in notepad. Find the following:
[
["16",4],
["24",6],
["32 (duel)",8],
["40 (tiny)",10],
["48 (small)",12],
["56",14],
["64 (standard)",16],
["72",18],
["80 (large)",20],
["100",25],
["120 (huge)",30],
["140",35],
["160",40],
["180",45],
["200",50],
["240",60],
["280",70],
["320",80],
["360",90],
["400",100],
["480",120],
["560",140],
["640",160],
["720",180],
["800",200],
["880",220],
["1000",250],
["1200",300],
["1400",350],
["1600",400],
["1800",450],
["2000",500],
["2400",600],
["2800",700],
["3200",800],
["3600",900],
["4000",1000],
["5000",1250],
["don't override",-1],
],
and change to something like this:
[
["16",4],
["24",6],
["32 (duel)",8],
["40 (tiny)",10],
["48 (small)",12],
["56",14],
["64 (standard)",16],
["72",18],
["80 (large)",20],
["100",25],
["120 (huge)",30],
["140",35],
["160",40],
["180",45],
["200",50],
["240",60],
# ["280",70],
# ["320",80],
# ["360",90],
# ["400",100],
# ["480",120],
# ["560",140],
# ["640",160],
# ["720",180],
# ["800",200],
# ["880",220],
# ["1000",250],
# ["1200",300],
# ["1400",350],
# ["1600",400],
# ["1800",450],
# ["2000",500],
# ["2400",600],
# ["2800",700],
# ["3200",800],
# ["3600",900],
# ["4000",1000],
# ["5000",1250],
["don't override",-1],
],
Putting the # in front will remove that option from the list, which will make random no longer able to pick it, which should solve your problem. Note: you'll have to make this change twice, once for width, once for height.
Erendir Feb 21, 2006, 10:10 AM I dont know, how it works, but i have some proposition, which can make this great script some more better:
Do You can introduce a "areas" or "regions" with typically landscape, for example "plains", "desert", "hills", "mountains"?.. It must be not ONLY this regions on the map, but such things would be nice ("Ok, now i've arrived the greate planes" "Looks like the Himalayas" and so on)
And another proposition: tiles near mountains should have bigger chance to be hills. Like foothills.
Best regards,
Erendir
P.S. Sorry for my english :rolleyes:
surt Feb 21, 2006, 12:43 PM I dont know, how it works, but i have some proposition, which can make this great script some more better:
Do You can introduce a "areas" or "regions" with typically landscape, for example "plains", "desert", "hills", "mountains"?.. It must be not ONLY this regions on the map, but such things would be nice ("Ok, now i've arrived the greate planes" "Looks like the Himalayas" and so on)
And another proposition: tiles near mountains should have bigger chance to be hills. Like foothills.
Best regards,
Erendir
P.S. Sorry for my english :rolleyes:
Interestingly enough, the mountains actually work the reverse way in my script: a tile near a hill has a greater chance to become a mountain.
For the other idea ... that would be somewhat difficult, as my script doesn't really have a notion of areas built into it, only continents at the moment. But i'll think about it and see if anything comes to me.
Elhoim Feb 22, 2006, 05:19 AM Another interesting concept would be large mountain ranges, with some passes in them. It would add a new strategic layer to the game. Right now peaks are only unusable terrains for city purposes, as they can be easily bypassed by units...
surt Feb 22, 2006, 08:21 AM Another interesting concept would be large mountain ranges, with some passes in them. It would add a new strategic layer to the game. Right now peaks are only unusable terrains for city purposes, as they can be easily bypassed by units...
I've thought about this as well, and I think it is a good idea. Unfortunatley, I haven't yet thought of a good way to figure out where strategic bottlenecks will be by algorithm, so it's hard to place peaks in a deliberate way that will add meaningfully to the strategy. But i'll keep thinking about it, maybe something will come to me.
joethreeblah Feb 22, 2006, 02:28 PM 25% chance any tile adjacent to a mountain will be a mountain.
A Silly Goose Feb 22, 2006, 11:12 PM That wouldn't work, because you'd end up with big, blobby, checkerboard patterns, instead of chains of mountains.
I'd suggest an algorithm that comes up with a line that tends to follow along the edges of a couple landmasses or large patches of desert/plains/grassland/whatever, have a certain percentage of the land tiles along that route become mountains, and then place hills along a certain percentage of the tiles adjacent to those mountains. That way you get some interesting mountain ranges, with nice piedmont regions around them; in addition, you also mimic plate tectonics, because the mountain chains span multiple landmasses, implying that the landmasses were once part of a single continent/pangaea that broke apart as the tectonic plates shifted.
The trickiest part, of course, would be finding a way to generate and work with that curvy guideline... Maybe by creating several smaller, straight lines?
Erendir Feb 24, 2006, 08:48 AM I've noticed, that also by many/many rivers/lakes, there will be really MANY lakes, but only few rivers.
=>
the rivers can lead to/from lakes (like from mountains)
one lake can have many rivers inflowing in it and 0-1-few outflowing.
the rivers can have inflows...
and so on. :)
roidesfoux Feb 24, 2006, 02:34 PM 1) I know it's been said before, but YOUR SCRIPT ROCKS. :goodjob:
2) Whenever people come out and say "XYZ needs improvement", you have a new version in a few days, usually with extra features we didn't even think to ask for. I think we all really appreciate it. :hatsoff:
-RdF
P.S. I discovered something recently: on the first turn of the game, there is a "Regenerate Map" button in the game menu. It lets you start a new game with all of the same parameters without having to go to the main menu and go through the whole setup process again. (There's no message that it's working: it just looks like your computer freezes while it's making the new map.)
lordroy Feb 24, 2006, 05:57 PM 1) I know it's been said before, but YOUR SCRIPT ROCKS. :goodjob:
2) Whenever people come out and say "XYZ needs improvement", you have a new version in a few days, usually with extra features we didn't even think to ask for. I think we all really appreciate it. :hatsoff:
-RdF
P.S. I discovered something recently: on the first turn of the game, there is a "Regenerate Map" button in the game menu. It lets you start a new game with all of the same parameters without having to go to the main menu and go through the whole setup process again. (There's no message that it's working: it just looks like your computer freezes while it's making the new map.)
I use the "regenerate map" function all the time, and it does take some time for it to do so, but it has never locked on me.
YMMV
-=R=-
surt Feb 24, 2006, 07:37 PM Regenerate map is a generic civ4 feature, it should work with all scripts, not just mine. Unfortunately, it doesn't put the progress bar up, so it will appear that the game is frozen until the regeneration process is complete.
Also, I'm trying to find out if there is a good way for me to 'remember' your settings between trials so that you won't have to keep setting all your preferred options every time. Unfortunately, I'm taking a week long trip, so the next version will be longer than usual in coming.
joethreeblah Feb 27, 2006, 02:09 PM Surt,
Love your mod. It's the only one I use other than the blue marble.
I'm playing a huge map, and it doesn't work to zoom all the way out. It looks weird. I'll post screen shot later.
charlesolmsted Mar 01, 2006, 07:04 AM Download link is dead... looking forward to trying out this great application.
lordroy Mar 01, 2006, 07:11 AM Download link is dead... looking forward to trying out this great application.
Here ya go, at least I can give back to the community for such a great little script until the author is ready to update:
From my personal webserver: SmartMapV72.zip (http://dvlnsde.home.comcast.net/SmartMapV72.zip)
Enjoy!
-=R=-
jray Mar 01, 2006, 12:07 PM Hi, I've really been enjoying your mod!
One thing I've noticed is that with the SmartMap bonus settings, resource types tend to have a lot more local variation than with the standard setting. This offers a totally different gameplay experience, which is definitely commendable :). However, sometimes I also like to play with the standard setting because it tends to cluster same-type resources a lot more, leading more often to situations where you need to trade to get a certain resource. (Or maybe you have a monopoly on one). With the SmartMap layout, you're a lot more likely to be successful just turtling in your niche somewhere with access to all the resources you need to keep your cities growing fast. And it's a lot easier to ramp up your health and happiness due to the large variety of resources within easy reach.
But I feel like when I use the standard bonus setting, I'm missing out on some of the nice features of your algorithm. I wonder if you might consider working on a setting that mimics the clustering that the standard method does but uses the smarter placement you've implemented.
On another note, I'm curious about how things work on the Small map size. I seem to get significantly more resources using SmartMap Normal than standard bonuses. In fact, in my last game, I was able to put my second city on top of 10 resources in the ancient era! That never happens in a standard game... it's hard to find as many as 5 in one city plot. I also see about 3 times as many goodie huts on SmartMap Normal goodies as I do on standard goodies. Anyway, I'm wondering if this is all intended, or whether things might need a little downsizing on Small maps. Thanks!
surt Mar 01, 2006, 12:16 PM Hi, I've really been enjoying your mod!
One thing I've noticed is that with the SmartMap bonus settings, resource types tend to have a lot more local variation than with the standard setting. This offers a totally different gameplay experience, which is definitely commendable :). However, sometimes I also like to play with the standard setting because it tends to cluster same-type resources a lot more, leading more often to situations where you need to trade to get a certain resource. (Or maybe you have a monopoly on one). With the SmartMap layout, you're a lot more likely to be successful just turtling in your niche somewhere with access to all the resources you need to keep your cities growing fast. And it's a lot easier to ramp up your health and happiness due to the large variety of resources within easy reach.
But I feel like when I use the standard bonus setting, I'm missing out on some of the nice features of your algorithm. I wonder if you might consider working on a setting that mimics the clustering that the standard method does but uses the smarter placement you've implemented.
On another note, I'm curious about how things work on the Small map size. I seem to get significantly more resources using SmartMap Normal than standard bonuses. In fact, in my last game, I was able to put my second city on top of 10 resources in the ancient era! That never happens in a standard game... it's hard to find as many as 5 in one city plot. I also see about 3 times as many goodie huts on SmartMap Normal goodies as I do on standard goodies. Anyway, I'm wondering if this is all intended, or whether things might need a little downsizing on Small maps. Thanks!
It's quite possible that things may be a bit off in small map size. I do almost all my testing on standard/large/huge. I will have a look at some of the smaller sizes when I get back from my trip.
surt Mar 01, 2006, 12:18 PM Download link is dead... looking forward to trying out this great application.
The server has a daily virus scan that seems to prevent the web server from responding. I'm trying to find out if I can lower the priority on the virus scan. Sorry for the inconvenience. There's also a copy hosted on civfanatics on the 7.2 specific link.
mkyl Mar 01, 2006, 12:28 PM Hi!
I haven't played the script yet, but kept getting "Failed to load Python module SmartMap" in the menus. It turned out that I had placed the SmartMap.py file in the wrong PublicMaps directory. Seems it's not supposed to go in the Civilization4 install directory but instead in the Civilization4 directory in the user's profile. The correct PublicMaps directory was empty (the wrong one had Civ4's default map scripts in it). Hope this helps some of you...
MrSnap Mar 01, 2006, 01:23 PM to use this in muliplayer, does everyone need to have this installed (like a mod)? Or does only the game creator need it?
thanks
EL_OSO Mar 01, 2006, 07:15 PM to use this in muliplayer, does everyone need to have this installed (like a mod)? Or does only the game creator need it?
thanks
I just ran a server last Sunday that used this script with no issues between clients at all.
surt Mar 01, 2006, 07:48 PM Hi!
I haven't played the script yet, but kept getting "Failed to load Python module SmartMap" in the menus. It turned out that I had placed the SmartMap.py file in the wrong PublicMaps directory. Seems it's not supposed to go in the Civilization4 install directory but instead in the Civilization4 directory in the user's profile. The correct PublicMaps directory was empty (the wrong one had Civ4's default map scripts in it). Hope this helps some of you...
Actually, it usually belongs in
civ iv install directory\PublicMaps\
Most people with trouble with that have had unrelated civ iv installation problems, and a reinstall has solved it every time.
The other common error is to have
civ iv install directory\PublicMaps\SmartMap\SmartMap.py
when you should have:
civ iv install directory\PublicMaps\SmartMap.py
surt Mar 01, 2006, 07:49 PM to use this in muliplayer, does everyone need to have this installed (like a mod)? Or does only the game creator need it?
thanks
I don't play any multiplayer, but I believe only the host should require it. The map is generated on the host, and then transmitted to all the clients, so the clients only get the result of the script, and do not need to have a local copy.
Bringa Mar 03, 2006, 08:12 PM Hi, I think I found somewhat of a bug: when you set the forest/jungle settings to "normal forest, light jungle", it covers almost all of the map in forest. Literally all but two spots were covered in forest.
edit: same happens on "normal forest, normal jungle". I found literally ONE square on the map that didn't have forest on it.
Dafy Mar 05, 2006, 06:10 AM Link doesn't work:(
lordroy Mar 05, 2006, 06:29 AM Link doesn't work:(
Here ya go, at least I can give back to the community for such a great little script until the author is ready to update:
From my personal webserver: SmartMapV72.zip (http://dvlnsde.home.comcast.net/SmartMapV72.zip)
Enjoy!
-=R=-
I hated doin this.
-=R=-
surt Mar 07, 2006, 12:03 PM I hated doin this.
-=R=-
Sorry about that. With the next version I'll just include a zip link on the civfanatics server.
surt Mar 13, 2006, 11:47 AM I put the zip and link both on the main page, to avoid the problem with my server occassionally not responding:
http://forums.civfanatics.com/showpost.php?p=3599863&postcount=1
# 8.0
# Use pickle to store last preferences.
# Tweaked the adjustment to rivers and lakes so that many rivers will be more
# noticeable, and few lakes will really cut down the amount of lakes.
# Fix resource rates for smaller maps.
# Allow start placement to place settlers on hills as well as flatlands.
# Weight hills for start placement appropriately to the defensive bonus.
# Add spiral search feature, this may be of use to other mapmakers, used in
# my script to assign fragments as belonging to the nearest continent. Spiral
# search is the most efficient method of doing a 'find nearest X' on any grid
# based map, assuming you don't have a list of all X available.
# On higher river levels, make hills more likely to start rivers.
# Make rivers a little more common in general. Make the automatic river for each
# sufficiently large continent always start from a hill or peak if one is
# available, or a random tile if no hill or peak is found.
# Improve river paths by using spiral search to measure distance to nearest ocean
# Don't flatten peaks on coast, as this can create interesting strategic issues,
# and also tended to leave far fewer than the expected number of peaks.
# Fix a bug in the start placement picker that was giving extra scores for the
# start plot when it was supposed to be scoring nearby plots.
# Adjust how fragments are generated, and the number of fragments for few/many,
# to make maps using smaller numbers of fragments look less chaotic. Fragments
# also now sort-of obey the sealevel rules: they are allowed to start anywhere,
# but can only grow into one neighboring continent, so they are more likely to
# create an archipelago type of continental extension, rather than so frequently
# causing continents to merge.
# New SmartMap Clump Happy resources option which distributes all happiness
# resources like the standard generator (in clumps so trade is more likely to be
# necessary, hence 'clump happy'), but other resources in the smartmap style so
# that the distribution is fairer.
# Corrected a small land counting problem that sometimes gave too much land for
# a given ocean percentage.
# Added a few new options to the override width and height to allow for generating
# random ranges of sizes, as a couple of people had requested that.
Erendir Mar 13, 2006, 12:14 PM tnxtnxtnx
i will test it just now!
Bringa Mar 14, 2006, 10:23 AM I don't play any multiplayer, but I believe only the host should require it. The map is generated on the host, and then transmitted to all the clients, so the clients only get the result of the script, and do not need to have a local copy.
A little comment on this: yes, in theory this is right, however I highly recommend that every client also has a copy of SmartMap.py in their PublicMaps directory. Civ4's netcode is still quite horrible, and we've had many transfer timeouts while sending the .py around.
(Why do I think Civ4's netcode is horrible? Because it chokes connections. While sending Game Data to a rejoining player, don't try to do ANYTHING else with your connection. You'll be lucky if you're still connected at all in the end. I don't know what they did wrong there, but I know that rejoining is no fun at all because of that. Typically it looks like this: player 1 drops from the game for some reason... player 1 tries to reconnect... host times out, leaving player 2 alone in the game. Player 1 manages to connect to player 2. (Former) host reconnects... Player 2 times out. Etc.)
jray Mar 14, 2006, 10:51 AM # 8.0
Wow, looks awesome!! Thanks for making the effort to accommodate so many of our suggestions-- you rock!
I'll be travelling the rest of the week, but I'll look forward to trying this as soon as I get back. One quick question: I wonder if you'd consider adding a Clump Healthy :health: option as well (or maybe just merge it into a Clump Happy and Healthy option).
RSL Mar 15, 2006, 11:14 AM I really like the Clump Happy settings but I seem to be having some *major* problems with v8. 1. It takes a really long time to generate a standard sized map. Perhaps, 5-7 minutes. 2. I often get a fatal error, "Memory allocation failure - exiting program. Reason: bad allocation". Maybe it's just me or just my computer. I dunno but I thought I would report it anyhow.
Great work otherwise. I never play with any other maps anymore.
surt Mar 15, 2006, 01:39 PM I really like the Clump Happy settings but I seem to be having some *major* problems with v8. 1. It takes a really long time to generate a standard sized map. Perhaps, 5-7 minutes. 2. I often get a fatal error, "Memory allocation failure - exiting program. Reason: bad allocation". Maybe it's just me or just my computer. I dunno but I thought I would report it anyhow.
Great work otherwise. I never play with any other maps anymore.
can you tell me what options you're using, and how much memory your computer has? It sounds like you're running out of memory, though why this version would run out of memory when previous versions did not is unclear to me.
RSL Mar 15, 2006, 07:17 PM I was running a standard map and no other options changed. I've got 752M of RAM. an a 128M video card. I've rolled back to v7.2 right now.
ShallowGrave Mar 15, 2006, 11:52 PM Hi, I started to use Smartmap v8 and had the same problem as RSL. Actually I had to eventually reboot the pc because it seemed to be frozen.
Then I tried again but this time I changed the last options: override width and height. I chose "don't override" instead of the new random size generation that were default. It created the map quickly and without problems. I tried later with other options inside the override with and height and had no problems too.
So my guess is that the new options you added: random 16-64, random 32-128 and random 64-256 are to blame.
I have 2GB of memory.
surt Mar 16, 2006, 11:20 AM Hi, I started to use Smartmap v8 and had the same problem as RSL. Actually I had to eventually reboot the pc because it seemed to be frozen.
Then I tried again but this time I changed the last options: override width and height. I chose "don't override" instead of the new random size generation that were default. It created the map quickly and without problems. I tried later with other options inside the override with and height and had no problems too.
So my guess is that the new options you added: random 16-64, random 32-128 and random 64-256 are to blame.
I have 2GB of memory.
Thank you, that's the problem!!!
Will fix in 8.1. For now the workaround is indeed, just set to 'don't override'.
surt Mar 16, 2006, 11:21 AM I was running a standard map and no other options changed. I've got 752M of RAM. an a 128M video card. I've rolled back to v7.2 right now.
RSL: see above. The problem is that I added to the override list and forgot to make 'dont override' the default. Stupid mistake, but the easy work around is just to select 'don't override' for width and height.
RSL Mar 16, 2006, 12:24 PM Thanks as usual guys.
surt Mar 16, 2006, 03:55 PM Get it on the front page:
http://forums.civfanatics.com/showthread.php?t=154989
# 8.1
# Add Clump Health and Clump Both resource placement options.
# Clean up land placement code organization a little bit.
# Force release of spiral search memory, and reduce how far spiral search
# searches to improve performance.
# Fix the defaults for override with and height that were causing people
# to get out of memory errors.
wicked_1 Mar 20, 2006, 07:10 PM I found a bug.. in hotseat your Smartmat placement doesnt work correctly (it places ALL human players even if u selected some AI players).. if u choose standard placement however.. all works fine..
snapshooter Mar 21, 2006, 01:59 AM Surt, is it possible to get a map with absolutely no ocean or coast ? Something like the default Great Plain minus the small patch of ocean in the lower right corner, or Inland Sea without the inland sea ! I tried some obvious setting but there are still coast lines along the top and bottom of the map.
Another question about the size of your map. Are maps generated by SmartMap roughly twice as large as ones by default scripts with the same size setting, right ?
surt Mar 21, 2006, 10:16 AM I found a bug.. in hotseat your Smartmat placement doesnt work correctly (it places ALL human players even if u selected some AI players).. if u choose standard placement however.. all works fine..
Thanks for letting me know, I will look into it, I've never tried hotseat.
Update: I'm not able to reproduce this. Note that if you restart a hotseat game, civ IV automatically defaults to all human players in a hotseat game. You have to make sure to set players to AI every time.
I started a hotseat game with 2 humans and 4 ai's, and everything worked as expected.
surt Mar 21, 2006, 10:25 AM Surt, is it possible to get a map with absolutely no ocean or coast ? Something like the default Great Plain minus the small patch of ocean in the lower right corner, or Inland Sea without the inland sea ! I tried some obvious setting but there are still coast lines along the top and bottom of the map.
Another question about the size of your map. Are maps generated by SmartMap roughly twice as large as ones by default scripts with the same size setting, right ?
It's actually just 30% more total area. If you wanted to force it to be the right size, and play in the default way, you can set the map size to 'large' for example, then select overrride width and height to match the usual 'large' size. This will cause the game to load the 'large' map rules (from the worldsize xml) and the map will be generated with the exact width and height you requested.
I had not really considered an all-land map. Would you want that without any water (no lakes?) Or just no ocean, but allowing for lakes (considering that lakes do occassionally turn into oceans if they get big enough)?
jray Mar 21, 2006, 11:09 AM Love the new 8.1 options! Here are some glitches I've noticed in generating lots of Small, Tiny, and Duel maps:
1. Very few rivers (and ones that do get generated aren't very long), even at 'many rivers,few lakes.'
2. With 'normal forest' (and any jungle setting), about 2/3 of the time the entire map (except for maybe a handful of tiles) is covered in forest. The other 1/3 of the time it looks okay. I remember this issue being reported previously:
Hi, I think I found somewhat of a bug: when you set the forest/jungle settings to "normal forest, light jungle", it covers almost all of the map in forest. Literally all but two spots were covered in forest.
edit: same happens on "normal forest, normal jungle". I found literally ONE square on the map that didn't have forest on it.
3. Some settings are not remembered. For example, Wrap seems to change haphazardly every time I re-enter the Custom Game dialog, and Sealevel always reverts to Medium.
surt Mar 21, 2006, 03:46 PM Love the new 8.1 options! Here are some glitches I've noticed in generating lots of Small, Tiny, and Duel maps:
1. Very few rivers (and ones that do get generated aren't very long), even at 'many rivers,few lakes.'
2. With 'normal forest' (and any jungle setting), about 2/3 of the time the entire map (except for maybe a handful of tiles) is covered in forest. The other 1/3 of the time it looks okay. I remember this issue being reported previously:
3. Some settings are not remembered. For example, Wrap seems to change haphazardly every time I re-enter the Custom Game dialog, and Sealevel always reverts to Medium.
#1 I will have a look at. I don't do many small maps in my testing, so I may have missed something.
#2 I have never seen, unfortunately, but I'll try to reproduce a few more times.
#3 is interesting. I'll have a look. I unforunately cannot fix the sea level setting, that's handled by civ IV, but if wrap is wrong that is mine.
snapshooter Mar 21, 2006, 08:01 PM It's actually just 30% more total area. If you wanted to force it to be the right size, and play in the default way, you can set the map size to 'large' for example, then select overrride width and height to match the usual 'large' size. This will cause the game to load the 'large' map rules (from the worldsize xml) and the map will be generated with the exact width and height you requested.
I had not really considered an all-land map. Would you want that without any water (no lakes?) Or just no ocean, but allowing for lakes (considering that lakes do occassionally turn into oceans if they get big enough)?
Thank you for your quick reply. One of the best customer service I've ever experienced :p . About the all-land map, I only dont want ocean. Lakes of the size few tiles ( and rivers ) are OK, as long as they are not too big to be an inland sea.
surt Mar 22, 2006, 06:58 AM Thank you for your quick reply. One of the best customer service I've ever experienced :p . About the all-land map, I only dont want ocean. Lakes of the size few tiles ( and rivers ) are OK, as long as they are not too big to be an inland sea.
I made an option for each. One that is no ocean, another that is no ocean and no lakes. With just 'no ocean' you'd run a small risk (bigger risk on bigger size maps) that multiple lakes might combine to form a small ocean. With no ocean and no lakes, you'll get no water tiles. Will put it out shortly after I try to reproduce some of the errors people have complained about a few more times, particularly the forest over everything one.
jray Mar 22, 2006, 10:42 AM #3 is interesting. I'll have a look. I unforunately cannot fix the sea level setting, that's handled by civ IV, but if wrap is wrong that is mine.
I think I've narrowed down the problem now... it seems that Random is not remembered as a selection. It appears to be the same bug as the one with the Random selections in 'Play Now!' in vanilla 1.52. Whenever you choose Random, start a game, and then come back to the menu, the selection is changed to whatever the random number generator rolled before.
surt Mar 22, 2006, 02:04 PM I think I've narrowed down the problem now... it seems that Random is not remembered as a selection. It appears to be the same bug as the one with the Random selections in 'Play Now!' in vanilla 1.52. Whenever you choose Random, start a game, and then come back to the menu, the selection is changed to whatever the random number generator rolled before.
Ah, that's correct (unfortunately). There's no way for me to know (again, unfortunately) if random was chosen. All my script gets is what you 'picked' and random is converted to a pick before it reaches the script. So all I can do is put up the same setting, since I can't tell the difference between you choosing random and you choosing something else deliberately.
Sorry about that one, looks like it won't be fixed (by me: firaxis can fix it if they're paying attention).
Update: actually, I realize I could offer my own custom 'random smartmap' option ... I'll have a look at how hard that would be to do.
surt Mar 22, 2006, 04:44 PM Get it from the front page:
http://forums.civfanatics.com/showthread.php?t=154989
# 8.2
# Add option for 'no ocean' that will place nearly all land.
# Note: takes longer to generate high land count maps. Be patient.
# Add option for 'no ocean, no lakes' that will place all land.
# Improve the placement performance of smartmap placement on high land count
# maps by ruling out very low scoring placement positions earlier.
# This will improve overall map generation performance slightly.
# Small improvements to forest and lake placement, attempt to cure the
# rare 'all forest tiles' on normal forest problem (I've never reproduced
# this, but the chance that any such bug survived should be low.)
# Added 'smartmap random pick' option to all (smartmap controlled)
# menus, this makes a choice from among the more typically desirable
# options, and also stays random the next time you create a map,
# unlike the standard 'random' option, and even randomly re-picks if you
# choose to 'regenerate map'. I highly recommend using this in place of
# the standard 'random' option.
snapshooter Mar 22, 2006, 11:23 PM It is real quick, surt ! I try the "no ocean" option in the new version and it does exactly what I was looking for :goodjob: . Civ IV just became a little more interesting to me.
Thank you a bunch for it, surt :beer:
jray Mar 24, 2006, 11:14 AM # 8.2
Sweet!!
FYI, I have generated some awesome "mini-game" maps using these settings:
- 6 AI opponents, Size = Tiny
- Terrain = standard, Bonuses = SmartMap Clump Both
- defaults for the rest
This seems to be the magic combination to get similar gameplay as a vanilla Size=Standard game, but with more interesting world shape & terrain features, more fair strategic resource allocation & start placement, more goodie huts, and less micro-management (due to smaller world size). It rocks!
Terrain=standard ensures that all terrains and resources can spawn (see comment #2 below for further details). Bonuses = SmartMap Clump Both is absolutely perfect for getting similar results for happy/health as vanilla Civ4 (which I happen to like) but much better stone/marble/copper/iron/horse/coal/aluminum/oil/etc. allocation.
Some more hopefully constructive comments after playing around with 8.2:
1. I mentioned the scarcity of rivers before. That was with Peaks set to low. With Peaks set to normal, rivers seem okay now.
2. Using Terrain = SmartMap with any world sizes smaller than Standard (and Climate=Temperate/Sealevel=Medium), I rarely get any desert, tundra, or ice. In fact, on Tiny or smaller and dozens of tries, I've never seen any of those 3 terrains! As a result, several resources are always missing (incense/deer/beaver), and others are very scarce (most notably oil... I would regularly get only 2 spawns of oil on the entire map, and both in the ocean).
3. I wonder if it's possible to add a Bonuses = SmartMap Clump Both Many/Few option (or do you pass control onto Civ4, disallowing this possibility?). Not a big deal, because I like it as-is, but just curious for even more variety.
surt Mar 24, 2006, 12:22 PM Sweet!!
1. I mentioned the scarcity of rivers before. That was with Peaks set to low. With Peaks set to normal, rivers seem okay now.
Rivers are more likely to spawn at peaks, but I did tweak it a bit so that at least if you turn on 'many rivers' you should get a lot of rivers even with few peaks. I'll probably look at making rivers from hills more likely if your peak count is low to correct for that problem more.
2. Using Terrain = SmartMap with any world sizes smaller than Standard (and Climate=Temperate/Sealevel=Medium), I rarely get any desert, tundra, or ice. In fact, on Tiny or smaller and dozens of tries, I've never seen any of those 3 terrains! As a result, several resources are always missing (incense/deer/beaver), and others are very scarce (most notably oil... I would regularly get only 2 spawns of oil on the entire map, and both in the ocean).
It's quite possible that there is some tweaking needed for those smaller maps. I'll have a look at that. I mostly play on standard / large maps myself.
3. I wonder if it's possible to add a Bonuses = SmartMap Clump Both Many/Few option (or do you pass control onto Civ4, disallowing this possibility?). Not a big deal, because I like it as-is, but just curious for even more variety.
I'm passing control to civ4 for clumped resources, so I can't really do much about this.
GarretSidzaka Mar 25, 2006, 02:50 AM looks great. :goodjob: will make my next random game more fun!
McLMan Mar 25, 2006, 07:10 PM I played around with the settings, and got some really interesting maps. I'm looking forward to trying one for my next game.
Thanks, really good work! :goodjob:
Bringa Mar 25, 2006, 10:15 PM I'm practically only playing on Smartmap these days. One little feature request, even though I'm afraid it's silly: add bonus "many clump both"? As in, a clumped version, but with more stuff than in the normal clumped version.
Angus Khan Mar 26, 2006, 08:27 AM Excellent map generator surt :goodjob:
However, I do have one request...
By setting Sea Level to low, continents may be connected by coast, and may even merge. Is there any way to prevent the merging of continents, while still allowing them to be connected by coast?
surt Mar 26, 2006, 09:47 AM Excellent map generator surt :goodjob:
However, I do have one request...
By setting Sea Level to low, continents may be connected by coast, and may even merge. Is there any way to prevent the merging of continents, while still allowing them to be connected by coast?
Since I only have 3 options there, it's challenging to pick the best 3. I wish they had let mapmakers override those options.
The best current work around is probably to use medium sea level. That will at least some of the time connect continents by coast (mainly because of a civiv bug that allows galleys to jump ocean squares once in a while).
The next best workaround is to edit this in your local copy of smartmap, because it isn't hard. Find this:
# Sea Level adjustment (from user input), transformed into width of sea separating continents
sea = gc.getSeaLevelInfo(cymap.getSeaLevel()).getSeaLeve lChange()
seaWidth = 4 #default width for ocean separation of continents
if (sea > 0):
seaWidth = 7 #high sea level means extra separation
if (sea < 0):
seaWidth = 0 #low sea level means continents are permitted to merge
print " seawidth",seaWidth
And set the sea levels to however many tiles you want. For example, you might change medium from 4 to 3, which would keep continents very distinct, but frequently allow coasts to touch.
I will consider adding an override to do the same thing since it would be trivial to do (but I'm not sure if it is worth adding yet another option to the long list of options we have already).
Caradoc Mar 26, 2006, 01:22 PM Yes! This is exactly what I have been hoping for. I'd say this is the very best enhancement to the game so far.
surt Mar 26, 2006, 02:05 PM I'm practically only playing on Smartmap these days. One little feature request, even though I'm afraid it's silly: add bonus "many clump both"? As in, a clumped version, but with more stuff than in the normal clumped version.
Unfortunately, this proves difficult. I'm relying on civ code to generate the clumped resources, and unfortunately, there's no control available there. I can probably write my own version, but that's a more substantial undertaking, so you won't see such an option soon I'm afraid.
jray Mar 26, 2006, 02:17 PM Unfortunately, this proves difficult. I'm relying on civ code to generate the clumped resources, and unfortunately, there's no control available there. I can probably write my own version, but that's a more substantial undertaking, so you won't see such an option soon I'm afraid.
I'm curious, is the Civ4 resource placement algorithm surfaced to the modder? Or is it in their compiled code? I'd check myself but I'm travelling atm (plus, if I couldn't find it, I know it very well may still be there!). I've noticed another difference between SmartMap's and Civ4's resource placement: Civ4 tends to have more rules for where certain resources occur. For example, Civ4 seems to place crab and whale only near tundra or ice, but SmartMap will allow them near the equator. On the other hand, both SmartMap and Civ4 tend to place incense only in desert and deer/beaver only near tundra.
Anyway, it's neat to have choices to "place resources strictly according to terrain" vs. the more lenient/balanced/varied placement.
surt Mar 26, 2006, 04:49 PM I'm curious, is the Civ4 resource placement algorithm surfaced to the modder? Or is it in their compiled code? I'd check myself but I'm travelling atm (plus, if I couldn't find it, I know it very well may still be there!). I've noticed another difference between SmartMap's and Civ4's resource placement: Civ4 tends to have more rules for where certain resources occur. For example, Civ4 seems to place crab and whale only near tundra or ice, but SmartMap will allow them near the equator. On the other hand, both SmartMap and Civ4 tend to place incense only in desert and deer/beaver only near tundra.
Anyway, it's neat to have choices to "place resources strictly according to terrain" vs. the more lenient/balanced/varied placement.
It's a little bit of both. The amount and placement of resources is based on values that are tweakable in the civ4bonusinfo.xml (and thus can be modified in a mod but not a map script), but the actual algorithm that reads and uses these values is in compiled code (or maybe 'pseudo-compiled' python .pyc files).
Crab has a min and max latitude that are enforced by this compiled code, and that is why they tend to be found closer to ice with the standard generator. Smartmap placement only requires that bonuses be placed 'legally', and apparently the min and max latitude are not considered a 'legal' requirement, but rather more of a 'suggestion'.
That same file says that deer are only allowed on tundra terrains, and apparently that is a part of the 'legal' definition, and so smartmap obeys it.
Caradoc Mar 28, 2006, 01:37 PM Using Rocky terrain on various islands maps, I'm getting a lot more Stone and Marble than usual and a lot less Gold. I can fix this easy enough in bonusinfo, but thought you might want to know.
Kovacs Mar 28, 2006, 09:57 PM i *heart* SmartMap. great work :D
surt Mar 29, 2006, 11:56 AM Using Rocky terrain on various islands maps, I'm getting a lot more Stone and Marble than usual and a lot less Gold. I can fix this easy enough in bonusinfo, but thought you might want to know.
The amounts of resources you get using the smartmap options are independent of the terrain, except to the extent that the terrain does not create legal placement positions for the given resource. For gold, for example, I believe desert hills are required, and if there are not sufficient numbers of desert hills, you will get few gold. Stone and marble, on the other hand, are quite flexible, and can show up on all sorts of locations, and thus you are likely to always get the full amount of those.
A Silly Goose Mar 29, 2006, 08:08 PM Is there a way to at least limit the amount of certain resources that appear, then? Most resources are well enough as they are, but there is a definite over-abundance of fish, stone, and marble, consistently. Although you apparently lack any real control over where and how many of these resources are placed (except by tricking the compiled code with a "fake" civ4bonusinfo.xml, maybe; although trying that would probably get nasty), is it possible to remove "excess" instances of any resources with their type occurring more than X number of times?
I guess that's not likely to be a viable solution; of course, I'm not really one to say, seeing as how I'm not the one that's coded Civ 4's best map script.
Caradoc Mar 30, 2006, 01:15 AM Another observation: there is also an overabundance of Whales.
Just so I could stop bugging you, I took a look at the program and saw that Stone, Marble, and Whales were listed as common resources and that Gold only appears on empty Hills. That explains those. However, I am not getting Oil, either on land or sea, and did not see how that was placed.
I wonder if removing Stone and Marble from the common set and leaving them in the early start set would be a way to get them back into normal frequency of appearance while still giving players access to them.
Would it be a mistake to edit the list of common resources and early important resources to include some of the added resources available in mods like GreenMod? For this I would make a separate version of SmartMap for my own use only. Can I have your permission to do this?
My compliments for writing such well structured and commented code. I am new to Python, but have not had much trouble following it.
surt Mar 30, 2006, 10:39 AM Another observation: there is also an overabundance of Whales.
Just so I could stop bugging you, I took a look at the program and saw that Stone, Marble, and Whales were listed as common resources and that Gold only appears on empty Hills. That explains those. However, I am not getting Oil, either on land or sea, and did not see how that was placed.
I wonder if removing Stone and Marble from the common set and leaving them in the early start set would be a way to get them back into normal frequency of appearance while still giving players access to them.
Would it be a mistake to edit the list of common resources and early important resources to include some of the added resources available in mods like GreenMod? For this I would make a separate version of SmartMap for my own use only. Can I have your permission to do this?
My compliments for writing such well structured and commented code. I am new to Python, but have not had much trouble following it.
You are welcome to do whatever you'd like for your own use. I would even encourage you to post your version in this thread if it is more compatible with some mod (and I can look into merging the changes and making them compatible with future versions).
I made a special case for certain resources (gold & silver I think) because when evaluating viable map positions for those resources, I would frequently discover no tiles that were marked as legal for gold or silver, in spite of the fact that it appeared those tiles should be legal. So in addition to any 'legal' tiles, I also allow those resources to be placed on an empty hill.
Since a number of people have commented on it, I will take a look at tweaking the resource distribution some more in the next version.
Rabbit_Alex Mar 31, 2006, 09:55 PM Hey Surt,
First of all, great job! I really like the Smart maps. They are more balanced than Terra (which is my next favorite).
Can you make a version of this called SmartMap Terra which uses the same resource distribution system, but places all the civilizations in the Old World?
surt Apr 01, 2006, 11:51 AM Hey Surt,
First of all, great job! I really like the Smart maps. They are more balanced than Terra (which is my next favorite).
Can you make a version of this called SmartMap Terra which uses the same resource distribution system, but places all the civilizations in the Old World?
I could probably do this, I'll look into this for the next version.
Rabbit_Alex Apr 01, 2006, 01:21 PM Great thank you surt! Keep us updated :goodjob:
`DG` Apr 02, 2006, 07:51 AM What's the best way to increase the proportion of the map that's grassland? I tried playing around with sea levels and climate but didnt seem to have the desired effect (other than setting Temperate of course, but with that there's still an abundance of plains).
surt Apr 02, 2006, 11:17 AM What's the best way to increase the proportion of the map that's grassland? I tried playing around with sea levels and climate but didnt seem to have the desired effect (other than setting Temperate of course, but with that there's still an abundance of plains).
You could probably get more grassland by picking tropical and then turning down the jungle level. Tropical is wetter than temperate, and I take grassland to be a wetter version of plains.
surt Apr 02, 2006, 12:48 PM Get it from the topic main post.
# 8.3
# Tweak tundra, snow, desert picking process to make more likely on small maps.
# Add new separation override to allow absolute control of continent separation.
# More rivers sourced from hills if there are few peaks.
# Added options for central, edge, and corner sea to the ocean selections to
# generate that style of map. Particularly, if you enjoy the 'central sea'
# map style, you can now generate that with SmartMap.
# Tweak resource rates to make whales not quite so common, and to address other
# resource rate comments reported.
# Place resources in placement order to try to prevent good map positions from
# being taken by resources placed in wrong order.
# Added SmartMap New World placement option. This will prefer to place civs
# only on continents in the eastern hemisphere. This option will default
# to ordinary smartmap placement if there are not at least 2 continents, or if there
# is not a continent at least 90% of which is located in the western hemisphere.
jray Apr 03, 2006, 09:54 AM # Added SmartMap New World placement option. This will prefer to place civs
# only on continents in the eastern hemisphere. This option will default
# to ordinary smartmap placement if there are not at least 2 continents, or if there
# is not a continent at least 90% of which is located in the western hemisphere.
Cool!! I was just thinking the other day that it would be fun to play New World ("Terra") with your script. Thanks for adjusting the resources & rivers too!
Here's another idea, just in case you don't have a to-do list for 8.4 yet ;). Add a "variable world size" option that randomly picks either the requested size, one size smaller, or one size larger. You could have different options like 1 1 1 (to give a 1/3 chance of each), 1 2 1, etc., or even something like 1 2 3 2 1 (to allow size to change by 2 levels, making original choice most likely). I wonder if it might be possible to put the weights in an .ini file or something to increase the number of possibilities.
I just think it would be fun to have a slight chance that the world is either a little smaller or a little bigger than you expected!
Bringa Apr 04, 2006, 04:35 PM This continues to be by far the best mapscript out there. Thank you for all the work, surt (I haven't played a non-smartmap script in a very long time).
One question (although this may smack of abuse/cheese): do you think you could add an option to disable deserts? I remember another mapscript where you had the option to turn deserts into plains/grass (similarily for tundra).
surt Apr 04, 2006, 05:48 PM This continues to be by far the best mapscript out there. Thank you for all the work, surt (I haven't played a non-smartmap script in a very long time).
One question (although this may smack of abuse/cheese): do you think you could add an option to disable deserts? I remember another mapscript where you had the option to turn deserts into plains/grass (similarily for tundra).
I've been thinking about how to allow things like this. I dearly wish a map script could offer checkboxes in the ui, as it seems like a tremendous waste to offer a whole dropdown for something like this.
I'm considering putting a bunch of easily configurable options at the top of the script for people to edit if they want something somewhat unusual like this. Do you think that would suffice, or does editing the smartmap.py file a little bit seem like too much of a hassle?
Rabbit_Alex Apr 04, 2006, 09:32 PM Too much of a hassle for most of us.
A Silly Goose Apr 04, 2006, 09:38 PM I've actually been wondering if it's possible to use Python to create UI components for such things; you know, something like the Python Utility Library (http://forums.civfanatics.com/showthread.php?t=157141), but for UI-related stuff. Unfortunately, I can't really do more than wonder about it, since I have no knowledge or experience regarding Python.
`DG` Apr 05, 2006, 01:29 PM I've been thinking about how to allow things like this. I dearly wish a map script could offer checkboxes in the ui, as it seems like a tremendous waste to offer a whole dropdown for something like this.
I'm considering putting a bunch of easily configurable options at the top of the script for people to edit if they want something somewhat unusual like this. Do you think that would suffice, or does editing the smartmap.py file a little bit seem like too much of a hassle?
The only real reason why not IMHO is wether it's worth your time, assuming both that the options wouldn't make it otherwise. Some (i.e. those interested enough) having access to options is always going to be better than none.
Just needs the usual good documentation.
jray Apr 05, 2006, 01:39 PM One question (although this may smack of abuse/cheese): do you think you could add an option to disable deserts? I remember another mapscript where you had the option to turn deserts into plains/grass (similarily for tundra).
Nah, it's not abuse or cheese-- it's why Surt made such a flexible script for us! :)
One thing to keep in mind is that deserts tend to be required for Oil and Incense to spawn. (I think there may be other correlations too, such as Gold). When disabling deserts, we'd want some sort of workaround to get enough of these resources on the map.
oljb007 Apr 06, 2006, 09:15 PM surt:
downloaded your map script cause i grew very quickly tired of "square-boring continents" Yours is awesome, however and forgive me if this has been answered as I haven't searched this thread thoroughly; but I have played two games on prince and the AI has just obliterated me. However, on the same level of play with standard normal maps I win! I am usually the biggest civ and near tech leader. With the smart map, however, I am am dead last in everything.
anybody else noticed this, surt?
also what was the conclusion about stone and marble, its everywhere. or can we set the resource distribution back to
Rabbit_Alex Apr 06, 2006, 10:20 PM I have also experience that sometimes. I usually play on noble with goody huts and resources on maximum to make things a bit easier for me, but it makes it easier for the AI too. Or maybe I'm just not good at the game anymore after I took a break from it.
surt Apr 07, 2006, 10:24 AM surt:
downloaded your map script cause i grew very quickly tired of "square-boring continents" Yours is awesome, however and forgive me if this has been answered as I haven't searched this thread thoroughly; but I have played two games on prince and the AI has just obliterated me. However, on the same level of play with standard normal maps I win! I am usually the biggest civ and near tech leader. With the smart map, however, I am am dead last in everything.
anybody else noticed this, surt?
also what was the conclusion about stone and marble, its everywhere. or can we set the resource distribution back to
If you don't like the smartmap resource distribution, there is 'standard' under resources.
If the AI is crushing you, that is harder to explain. Smartmap does only 2 things that I would think could possibly affect this:
1) The maps are slightly larger, based on the assumption that smartmap uses more ocean than a normal script. If you are using less ocean, you may be offering the AI more land to work with.
2) The resource distribution. It may be that the AI is making better use of the way resources are distributed (in particular, if you are not using one of the clump happy/health options, it could be possible that the AI is taking some significant advantage of that). I would recommend trying either 'standard' resource distribution, or the clump healthy & happy option to see if your problem goes away.
jray Apr 07, 2006, 11:41 AM If the AI is crushing you, that is harder to explain. Smartmap does only 2 things that I would think could possibly affect this:
I think there are more possible reasons, and that they're positive ones :). I've noticed that even small variations from the vanilla Civ4 map script can have huge effects on strategy. It's chaos theory in action.
First, what SmartMap settings are you using? Not that this matters a whole lot, because even the default SmartMap settings (especially pre-8.3) are quite different than a vanilla script. The terrain is generally more favorable, resources are distributed more equally and clumped a lot less, etc. Surt summarized some of this in the previous post. You can set things like terrain, features, and bonuses to "standard" within SmartMap to revert back to vanilla script behavior.
Even with a vanilla-esque game, you can just have lously luck! Maybe that's what happened in those 2 games of yours. Most noticeable in the bad luck category is bad starting position. Let me tell you about my current game as an example: I started out with only three resources in my capital's fat cross, two of them spices and incense (both worthless until Calendar!). England started out with FIVE CLAMS in its fat cross, plus 1 or 2 land resources (can't remember which), and it has Fishing as a starting tech! This happened with the "Clump Both" setting, which lets the vanilla script handle happy/health resource placement. I have seen similar things happen in standard vanilla games too.
Anyway, IMHO it's awesome to get such variation. It helped me recognize certain ruts that I had gotten into with my strategy, since the vanilla game doesn't challenge you to vary as much. Now I can go back to vanilla games and do much better than before, because of things I've learned on SmartMaps. Yeah, there have been plenty of times I've been pounded into dust within a few centuries on a SmartMap, but even then I learned a few neat things as I took some crazy chances while casting myself into extinction. There are other times I had great starts and dominated the world like nobody's business! But mostly I've had games in between where some interesting new quirk presents itself that challenges yet another aspect of my "solid" strategy.
AvianAvenger Apr 08, 2006, 08:06 AM Just wanted to say supperb map script:goodjob: , i set everything to random and got the most insane looking map ive ever seen, it was absolutly brilliant.
I was getting sick of the standard average looking maps.
Most noticeable in the bad luck category is bad starting position.
...offtopic but anyway, my worst bad starting position was in the middle of the antartic... with a few hills and a small river. about 3 patchs of grass. all i could do was watch the barbarians come across the ice feilds which i was surounded by and destroy any progress i had made... never the less it was one of the most memorable games ive had to date.
gunnergoz Apr 08, 2006, 12:45 PM I like the map generator but the fact is that I'm tripping over marble and rock at every turn. How does one tone that down? The AI's are killing me by jumping on that resource with greater efficiency than I can muster and then getting all the early wonders...
oljb007 Apr 08, 2006, 03:31 PM thanks for the feedback.
I may try changing some of the settings back to "standard" but as jray has mentioned it does challange you to "adapt" I am by no means going to stop using this script as it is awesome.
I'm goign to try it again. ;)
Rabbit_Alex Apr 08, 2006, 05:47 PM Hey surt, I have another suggestion. I started a game as the England (fishing, mining) but the map put me in the middle of the tundra with no ocean in sight, so my free Fishing technology was useless.
Could you add an option so that you can choose if you start on the coast or not? Maybe have 1 option so only you the player is guaranteed to start there, and the AIs start in random spots, another option so that you are guaranteed to start inland and the AI starts in random spots, an option so that everyone starts inland, and another option so that everyone starts along the coast.
Mortador Apr 09, 2006, 09:53 AM Hi,
I've been playing CIV 4 for a while now. Although I enjoy very much the scenarios that are included in the game I woud appreciate at this point to be able to play my own customized map. For instance I am moslty interested in playing very HUGE custom map (ex. 256 by 256 size map).
I am sure that some of you out there already know how to modify the necessary XML files in order to play with that kind of map. Could someone help me by telling me the name of the XML files I have to modify in order to play a 256 by 256 map for example.
Thanks for anyone who could help me on this.
Mortador
surt Apr 09, 2006, 11:04 AM Hi,
I've been playing CIV 4 for a while now. Although I enjoy very much the scenarios that are included in the game I woud appreciate at this point to be able to play my own customized map. For instance I am moslty interested in playing very HUGE custom map (ex. 256 by 256 size map).
I am sure that some of you out there already know how to modify the necessary XML files in order to play with that kind of map. Could someone help me by telling me the name of the XML files I have to modify in order to play a 256 by 256 map for example.
Thanks for anyone who could help me on this.
Mortador
You can do this with smartmap. Set the override width and height to exactly what you want.
Otherwise, if you prefer to use the civ scripts, you need to create a mod containing Civ4WorldInfo, and edit that. Also, you have to edit some of the scripts, because they override the world info (usually in a method called getGridSize).
All in all I think using smartmap is a lot easier.
One thing to note, is that a 256x256 map in civiv takes a lot of memory. You probably won't be able to play on such a large map unless you have 2gb of memory.
Mortador Apr 09, 2006, 11:35 AM To Surt,
Thanks for the info:) , I will try it as soon as I can. I already downloaded your Smartmap utility.
Mortador
Rabbit_Alex Apr 09, 2006, 10:19 PM Surt, did you take my idea about coastline/inland placement into consideration?
AvianAvenger Apr 10, 2006, 06:07 AM Hey, found a bug...
I was using regenerate map over & over and after about three times of doing that it created a map in which everyplayer started on top of water :eek: , we had to crawl out of the oceans and onto the shore before we could settle down. hehe.
surt Apr 10, 2006, 10:01 AM Surt, did you take my idea about coastline/inland placement into consideration?
Yes, I will probably offer a forced coastline/inland placement options, and i'll also look into whether or not I can weight start positions based on your starting bonuses.
surt Apr 10, 2006, 10:02 AM Hey, found a bug...
I was using regenerate map over & over and after about three times of doing that it created a map in which everyplayer started on top of water :eek: , we had to crawl out of the oceans and onto the shore before we could settle down. hehe.
That's a civiv bug, they aren't properly cleaning up memory during regenerate. Unfortunately there's nothing I can do about that.
kazapp Apr 10, 2006, 10:42 AM Very nice! :)
May I offer one suggestion: what I would like is an option to reduce the frequency of the "industrial" bonus resources (I'm going to talk about oil here; but this applies also to uranium and possibly even coal, aluminum etc)?
It would be nice to be able to autogenerate two kinds of maps:
1) a few oil-rich areas to fight over (on water-rich maps it'll be crucial to control oil to be able to build a navy). You already have health and happy clumping, why not oil? :)
2) a "one oil" per player type of map, where you need to find "your" plot of oil and protect it?
On most maps there's simply too many oil bonuses to be able to realistically deny a large opponent these interesting bonuses!
Thanks again :)
surt Apr 10, 2006, 12:43 PM Very nice! :)
May I offer one suggestion: what I would like is an option to reduce the frequency of the "industrial" bonus resources (I'm going to talk about oil here; but this applies also to uranium and possibly even coal, aluminum etc)?
It would be nice to be able to autogenerate two kinds of maps:
1) a few oil-rich areas to fight over (on water-rich maps it'll be crucial to control oil to be able to build a navy). You already have health and happy clumping, why not oil? :)
2) a "one oil" per player type of map, where you need to find "your" plot of oil and protect it?
On most maps there's simply too many oil bonuses to be able to realistically deny a large opponent these interesting bonuses!
Thanks again :)
I can certainly make a version where strategic resources are rarer. I can't 'clump' oil (at least not easily) because I rely on the default resource placement for clumping, and that doesn't do clumping for oil.
I am working on assorted resource placement tweaks for the next version, i'll at least include an option to make all strategic resources rarer.
AvianAvenger Apr 10, 2006, 08:03 PM That's a civiv bug, they aren't properly cleaning up memory during regenerate. Unfortunately there's nothing I can do about that.
That explains a few things O_o
surt Apr 11, 2006, 01:03 PM Pick it up from the main post.
# 8.4
# Tweaked resource placement to obey minlatitude and maxlatitude for the stricter
# resource placement options (SmartMap few, and all clumping options).
# Tweaked resource rates some more based on forum feedback.
# Made some other adjustments to the fair resource distribution to simplify it, and
# to distribute resources a little more evenly in certain cases. Also improved
# chances that all expected resources will be placed.
# Added terrain options to place no desert, no snow, no snow/desert,
# no snow/desert/tundra, only plains, or only grass. If you wan't minimal
# snow/desert/tundra, play on tropical, and turn jungles to light if necessary.
# Added 'SmartMap restricted / most restricted' option to resource placement, which
# enforces every placement rule I understand, clumps both happy and health resources,
# and offers fewer (restricted)/much fewer (most restricted) resources in general.
# Move the version history for prior versions to end of file
# Added player/all inland/coastal placement options. Player inland will do its best
# to give the first player an inland start. Coastal prefers a coastal start. All
# attempts to do the same for all players (less likely to succeed, based on available
# map positions).
# Add single tile isles option. This make for a very wierd game in generic civiv, but
# was requested by people developing space/planet based variants.
# Fixed bug in override separation that caused it to behave always as if low sea level
# was selected instead.
# Added 'central pole' variation on all wrap options. This creates an icy pole in the
# center of the map, as if you were looking down on earth from above the north pole,
# also known as polar projection. This now allows you to have 0,1,2,3 poled maps,
# which you can envision as different ways to unwrap a spherical world onto a flat
# rectangular map.
# Fixed a small math error in determining the distance from the pole/equator which
# became obvious when working with the polar projection maps. This may cause you
# to see a little more snow/tundra than previously.
`DG` Apr 11, 2006, 02:12 PM :goodjob:
ps. anyone have a reference for the vanilla Civ4 map sizes, for use with the override x,y feature?
Rabbit_Alex Apr 11, 2006, 03:10 PM It keeps getting better and better and better... :goodjob:
Thanks for putting in the coast-or-inland option by the way.
surt Apr 11, 2006, 05:06 PM :goodjob:
ps. anyone have a reference for the vanilla Civ4 map sizes, for use with the override x,y feature?
It varies script by script, but the majority use the following:
duel: 10x6 (40x24 in map units)
tiny 13x8 (52x32)
small 16x10 (64x40)
standard 21x13 (84x52)
large 26x16 (104x64)
huge 32x20 (128x80)
Note: my default enlargement of the maps is based on my map offering more ocean tiles than most maps, which is the guideline used by other scripts that vary from the default size.
Taliseian Apr 11, 2006, 10:53 PM FYI --
Clean Install
Patch 1.52
Sevomod 2.3
Blue Marble Terrain
SmartMap won't work
I've tried several times
1.5g ram, Ath 2600
T
wrangler89 Apr 12, 2006, 07:30 AM thanks so much for this great work its ALMOST as much fun generating maps as it is playing the game! i did notice something peculiar in my last game - when i used the mouse wheel to pop out to world view all i could see were the city names and everything else was dark. it was actually quite awesome looking (kind of cosmos-looking). is this because on the mini-map i only have such a small portion of the world uncovered? thanks for any help.
surt Apr 12, 2006, 09:44 AM thanks so much for this great work its ALMOST as much fun generating maps as it is playing the game! i did notice something peculiar in my last game - when i used the mouse wheel to pop out to world view all i could see were the city names and everything else was dark. it was actually quite awesome looking (kind of cosmos-looking). is this because on the mini-map i only have such a small portion of the world uncovered? thanks for any help.
Unfortunately, the map script has done all its work before any cities get created, so that has to be a civiv bug.
surt Apr 12, 2006, 09:47 AM FYI --
Clean Install
Patch 1.52
Sevomod 2.3
Blue Marble Terrain
SmartMap won't work
I've tried several times
1.5g ram, Ath 2600
T
Could you define 'doesn't work'? Is it:
Doesn't show up in your map choice list?
Shows up but gives a script error?
Crashes? ...
Assuming it shows up: Does it work if you choose all the default options? (last option for all the smartmap options)
Would you be willing to generate a logfile? (I can walk you through this if you don't know how).
Follow up: works fine for me with both Blue Marble and SevoMod 2.3, so if you can provide more info about what exactly happens maybe I can help you.
Taliseian Apr 12, 2006, 11:05 AM Let me know how to generate a log file.
What happens is that I choose my options for Smartmap (installed according to the readme).
Once I make my choices and start the game, it hangs generating the map and C4 stops responding. I've let it sit for over 10min and it can't finish making the map.
I've cleared the cache between attempts.
T
surt Apr 12, 2006, 11:17 AM Let me know how to generate a log file.
What happens is that I choose my options for Smartmap (installed according to the readme).
Once I make my choices and start the game, it hangs generating the map and C4 stops responding. I've let it sit for over 10min and it can't finish making the map.
I've cleared the cache between attempts.
T
Ok, so the most likely explanation would be that you're trying to generate too large a map for your amount of memory. So my first question is: can you generate a duel sized map? (be sure to turn override width and height to don't override). I will go look up the instructions on generating a log file and post info shortly. A 1.5G machine should be able to generate up to about a 150x150 map (or a huge map). If you are using override width/height to go bigger than that you'll have trouble.
It might also be helpful if you could list the set of options you're trying to use, I could try them on my end.
Here are the settings to generate a log file (set in your _Civ4Config aka civilizationiv.ini):
; Enable message logging
MessageLog = 1
; Show python debug msgs in IDE console
ShowPythonDebugMsgs = 1
; Enable the logging system
LoggingEnabled = 1
Then after running, go to your _Civ4Logs dir, and have a look at:
PythonDbg.log
I'll want to see maybe the last 10 lines.
jray Apr 12, 2006, 11:54 AM Let me know how to generate a log file.
What happens is that I choose my options for Smartmap (installed according to the readme).
Once I make my choices and start the game, it hangs generating the map and C4 stops responding. I've let it sit for over 10min and it can't finish making the map.
I've cleared the cache between attempts.
T
I think it might be a new problem with 8.4. I've been using SmartMap extensively since 7.something, and 3 of the 8 maps I generated caused a hangup (at the "Initializing" stage) that I could only recover from by re-booting my computer. I've never had this problem until 8.4. I haven't yet eliminated other possible causes yet, but here are the details I have so far. Sorry for the incomplete data, but I'll be out of town soon and unable to test further or generate a log for a while:
Default settings except for:
- Small map size
- 6 AI civs
- Features = SmartMap
- Bonuses = SmartMap Clump Both
- Many rivers, few lakes
- Raging Barbarians
1. tried 8.4 for the first time -> fine
2. retired, exited to main menu, set up new game -> hang
3. rebooted, launched new 8.4 map -> fine
4. retired, exited Civ4 completely, relaunched Civ4 & started new 8.4 map -> hang
5. rebooted, moved CD-ROM to new more stable drive, launched new 8.4 map -> fine
6. retired, exited Civ4 completely, relaunched Civ4 & started new 8.4 map -> hang
7. rebooted, launched new 8.4 map -> fine
8. retired, exited Civ4 completely, waited several minutes, relaunched Civ4 & started new 8.4 map -> fine
surt Apr 12, 2006, 12:14 PM I'm digging. I'll release an 8.4 update to fix it as soon as I find it.
surt Apr 12, 2006, 12:39 PM Sorry folks, little bug with player placement that could cause and endless loop. Fixed.
Get it on the main page as usual. Again, sorry for the inconvenience, the endless loop only happens on certain maps, and I didn't happen to catch it on any of the ones I tried (only happens on maps with a small number of continents, and even then only in certain situations).
# 8.4A
# Quick Fix for problem with placing players on pangea maps introduced in 8.4
# (would cause an endless loop, freezing civ iv on pangea and certain other
# maps where it couldn't decide the best continental distribution of players)
surt Apr 12, 2006, 12:44 PM Let me know how to generate a log file.
What happens is that I choose my options for Smartmap (installed according to the readme).
Once I make my choices and start the game, it hangs generating the map and C4 stops responding. I've let it sit for over 10min and it can't finish making the map.
I've cleared the cache between attempts.
T
Please let me know if 8.4a fixes your problem, I assume it will. But really, really be sure to let me know if it doesn't!
Sorry for the inconvenience!
ndferent Apr 12, 2006, 02:39 PM i thought i was having the same problem, after about a minute the map would stop loading at initializing. i assumed it froze (the previous version of smartmap only took me about 5 mins to load, huge map, 14 civs, the bar would rarely stop moving...) so i tabbed out, and ctrl alt deleted it. i installed version 8.4a and tried again, but it got stuck and i ctrl alt deleted it again. after experimenting with different options a bit, i realized that if i set everything to the default the map would eventually load. on normal, 8 civs it took 6 minutes to load... so, i set everything to what i usually do (huge map, 14 civs) and started it up... the bar seemed to stop at initializing forever.. and the graphics for the intro movie froze too, but the music was still playing, so i waited.. and waited.. after 17 minutes :eek: the map finally finished loading. from 5 minutes to 17 minutes, thats a huge jump! i think i'd rather use version 8.3 for now, heh. although i do like the new options added in 8.4.. anyone else having a greatly increased load time?
surt Apr 12, 2006, 05:26 PM i thought i was having the same problem, after about a minute the map would stop loading at initializing. i assumed it froze (the previous version of smartmap only took me about 5 mins to load, huge map, 14 civs, the bar would rarely stop moving...) so i tabbed out, and ctrl alt deleted it. i installed version 8.4a and tried again, but it got stuck and i ctrl alt deleted it again. after experimenting with different options a bit, i realized that if i set everything to the default the map would eventually load. on normal, 8 civs it took 6 minutes to load... so, i set everything to what i usually do (huge map, 14 civs) and started it up... the bar seemed to stop at initializing forever.. and the graphics for the intro movie froze too, but the music was still playing, so i waited.. and waited.. after 17 minutes :eek: the map finally finished loading. from 5 minutes to 17 minutes, thats a huge jump! i think i'd rather use version 8.3 for now, heh. although i do like the new options added in 8.4.. anyone else having a greatly increased load time?
That is pretty bad. Would you mind telling me what settings other than huge/14 civs you are using?
ndferent Apr 12, 2006, 05:54 PM Huge/14 civs
Climate: Tropical
Sealevel: High
Era: Ancient
Speed: Marathon
Continents: 6
Terrain: Smartmap
Features: SM Strict
Bonuses: SM Many
Goodies: SM normal
Ocean: 65%
Hills: 30%
Peaks: Normal
Forest/Jungle: Heavy/Heavy
Rivers/Lakes: Many/Few
Land Style: very round, no fragments
Start Placement: SM Coastal
Wrap: X
Overide Width/Height: dont overide
Override Seperation: 2 coasts
ndferent Apr 12, 2006, 06:44 PM i just tried starting another game. the map only took about 8 mins to load up, an automated program must of been running in the backround when i first tried it, sorry about that :blush: . 8 minutes is still kinda long considering a map with similar settings using the original scripts takes less then a minute to load, but i can live with it i guess. thanks for the great script surt :goodjob:
Taliseian Apr 12, 2006, 07:56 PM downloaded the new map script
It worked great!
Just wanted to say thanks!!
T
surt Apr 13, 2006, 09:00 AM i just tried starting another game. the map only took about 8 mins to load up, an automated program must of been running in the backround when i first tried it, sorry about that :blush: . 8 minutes is still kinda long considering a map with similar settings using the original scripts takes less then a minute to load, but i can live with it i guess. thanks for the great script surt :goodjob:
I'll still look into it, so hopefully whatever slowed down will be fixed in the next version. Thanks for posting your options list.
Follow up: great, actually your setting have shown me just what is going on ... your map has a lot more land than most of the ones i generate, and 2 parts of the code are slow there. It's taking about 12 seconds (p4m 1.8ghz) to place hills, and over a minute to place resources. The many resources selection you made in combination with the high land count is turning out to significantly slow down in one of the tweaks I made to the resource placement. So I will be able to fix this for you.
Followup: let me know if 8.5 improves things. I'll go further with performance improvements in the next version, but this should get it back to pretty close to where it was in the prior version.
surt Apr 13, 2006, 10:26 AM A really minor update, improves performance for big maps & maps with lots of resources.
# 8.5
# Performance improvements.
# Improved hill placement for a huge/65ocean/30hills map from 12 seconds to 2.
# Improved huge/65ocean/many resources from 90 seconds to 30.
Bringa Apr 13, 2006, 10:58 AM It keeps getting better and better and better... :goodjob:
I was about to post saying the exact same thing ;) I hope Firaxis is aware of this mapscript--it really looks like something that should be in the core game. It's too good not to have it.
surt Apr 13, 2006, 11:03 AM I was about to post saying the exact same thing ;) I hope Firaxis is aware of this mapscript--it really looks like something that should be in the core game. It's too good not to have it.
Thanks for the praise!
I would be happy to let Firaxis freely include this in a patch / expansion if they are interested, assuming they'll leave my contact info in it or otherwise give me credit for it.
`DG` Apr 13, 2006, 01:56 PM any known/expected compatibility issues with 1.61?
surt Apr 13, 2006, 02:09 PM any known/expected compatibility issues with 1.61?
No reason to expect any.
Unless they changed the map script interface, but no such change is mentioned in the patch notes. I'll follow up once I've patched.
Follow up: No problems so far. I've generated and regenerated a few maps with nothing unexpected happening.
Disappointing: Looks like they're still using a lot of memory per tile. I can't start up a 320x200 map on 1gig, which implies they need at least 8k and maybe as much as 16k or more per tile.
Ktulu Apr 13, 2006, 04:06 PM I just want to say thanks a lot for this outstanding map script. It is easily my favourite mod. I've been using it for a while and realised I haven't posted a thank you in this thread. So thanks! :)
Also, your customer service is top notch! :)
Albatoonoe Apr 13, 2006, 09:41 PM Great Work on this map script, man. Kudos.
ndferent Apr 14, 2006, 01:09 AM waaaaaay better! :D thanks again!
surt Apr 14, 2006, 10:20 AM Thanks to everybody for all the kind words.
Time for some more ideas for the script! I'm going to have a look at the new scripts they added in 1.61 and see what might be worth including. I'm also going to work on the speed some more for those of you building really large maps. Any other ideas?
Rabbit_Alex Apr 15, 2006, 02:17 AM Hey surt,
Could you combine the coastal start option with the Old World option? That way, you are guaranteed to start on the coast in the Old World.
surt Apr 15, 2006, 11:44 AM Hey surt,
Could you combine the coastal start option with the Old World option? That way, you are guaranteed to start on the coast in the Old World.
Sure, that'll be a trivial addition.
A Silly Goose Apr 15, 2006, 03:45 PM Your SmartMap map script only gets better and better, Surt. I'm sure if you were ever approached by a ninja, and you told him you made this script, he'd be all cool with you and stuff; it's that totally sweet.
Heck, the last thing I myself wanting out of this thing is something so trivial it almost isn't even worth mentioning--which only goes to show how great this map script is.
I think I'll go ahead with that request, though:
I like to play with the most irregular coasts and many fragments, and it makes for a good and interesting map; however, there's nothing more annoying than a resource, on the end of a peninsula--or any part of it, for that matter--that can't be reached because there's a mountain sitting right next to it. It seems like it happens every time I make a new map, and there's no way I'm gonna invest in a settler, just to plop it on top of the stupid thing (and have as little as one land tile to work with).
Really, I just want it made so that: if a land tile has sea/coast tiles to either its north and south, or to its east and west, a mountain won't be placed on it. Not only would that prevent those annoying instances of practically useless resources, but it would keep mountains from blocking passages between lakes, too; which, in turn, helps to give forts some amount of practicality.
Of course, if the cost in performance is too great (my limited coding knowledge understands how it could be, at least), then don't worry about it; it's just as I said at the beginning of this post.
surt Apr 15, 2006, 09:31 PM Your SmartMap map script only gets better and better, Surt. I'm sure if you were ever approached by a ninja, and you told him you made this script, he'd be all cool with you and stuff; it's that totally sweet.
Heck, the last thing I myself wanting out of this thing is something so trivial it almost isn't even worth mentioning--which only goes to show how great this map script is.
I think I'll go ahead with that request, though:
I like to play with the most irregular coasts and many fragments, and it makes for a good and interesting map; however, there's nothing more annoying than a resource, on the end of a peninsula--or any part of it, for that matter--that can't be reached because there's a mountain sitting right next to it. It seems like it happens every time I make a new map, and there's no way I'm gonna invest in a settler, just to plop it on top of the stupid thing (and have as little as one land tile to work with).
Really, I just want it made so that: if a land tile has sea/coast tiles to either its north and south, or to its east and west, a mountain won't be placed on it. Not only would that prevent those annoying instances of practically useless resources, but it would keep mountains from blocking passages between lakes, too; which, in turn, helps to give forts some amount of practicality.
Of course, if the cost in performance is too great (my limited coding knowledge understands how it could be, at least), then don't worry about it; it's just as I said at the beginning of this post.
Can you draw me a picture of what this looks like? IE, if:
L = land
O = Ocean
P = Peak
R = Resource
are you describing:
OORO
OOPO
OOLO
or something else?
Traxer2 Apr 16, 2006, 11:22 AM I think he mean :
OOOOLL
ORPLLL
OOOOLL
Had this happened a couple times too .. frustrating i agree.
*edit* hehe nm same thing ;)
Rabbit_Alex Apr 16, 2006, 02:08 PM Those two diagrams are basically the same. I've seen it happen many times with tribal villages at the end of a peninsula and you can't get to it unless you build a galley, which is a big waste of your city's production time just to pop a village that wll probably give you only gold.
A Silly Goose Apr 16, 2006, 05:04 PM Yeah, that's what I was talking about. In fact, all that matters is if you have:
O
P
O
or
OPO
In either of those cases, your path will almost always be blocked. The only exception to this is when the peak is on the very end of a peninsula; and that's only because you're at the end of the path, at that point.
shackleton Apr 18, 2006, 01:24 AM Great script :)
I would like to see an option added with more sliders of plains vs grass, in the same way as you have for forest vs jungle.
Rabbit_Alex Apr 18, 2006, 08:00 AM I think you can do that when you choose the terrain.
surt Apr 18, 2006, 03:44 PM Great script :)
I would like to see an option added with more sliders of plains vs grass, in the same way as you have for forest vs jungle.
I suppose that may be of wide enough interest that I can add a 'more plains' and 'more grass' option to the terrain selector.
shackleton Apr 18, 2006, 06:57 PM Woohoo! :) I've been kicking myself all day trying to find the XML tag that sets it :)
RSL Apr 19, 2006, 07:40 AM Yeah, that's what I was talking about. In fact, all that matters is if you have:
O
P
O
or
OPO
In either of those cases, your path will almost always be blocked. The only exception to this is when the peak is on the very end of a peninsula; and that's only because you're at the end of the path, at that point.
I just wanted to voice another opinion on this matter. Although it's annoying, I don't think this kind of coastline should be kept from occurring in the game. There are a whole heck of a lot of places in the world [especially around coastal areas] that contain awesome resources but are almost unobtainable [the supply/demand for these things helps ensure that they're worth some money and effort to try to get them]. Just because something is annoying shouldn't be a reason to uncode it from the game. Does it lack a real-world analog is a better reason, which I don't think is the case here.
Just my opinion but I'd hate to see one of the really challenging parts of this map script taken away because no one seemed to like it. [I, for the record, do like it.] There's nothing like that wonderful sense of frustration when your scout spots a goodie hut in the distance only to find you can't get to it. Kind of like being beaten to a wonder or a good city location.
As always, GREAT work on this script!
surt Apr 19, 2006, 11:41 AM I just wanted to voice another opinion on this matter. Although it's annoying, I don't think this kind of coastline should be kept from occurring in the game. There are a whole heck of a lot of places in the world [especially around coastal areas] that contain awesome resources but are almost unobtainable [the supply/demand for these things helps ensure that they're worth some money and effort to try to get them]. Just because something is annoying shouldn't be a reason to uncode it from the game. Does it lack a real-world analog is a better reason, which I don't think is the case here.
Just my opinion but I'd hate to see one of the really challenging parts of this map script taken away because no one seemed to like it. [I, for the record, do like it.] There's nothing like that wonderful sense of frustration when your scout spots a goodie hut in the distance only to find you can't get to it. Kind of like being beaten to a wonder or a good city location.
As always, GREAT work on this script!
I agree, so this will be an optional setting for the peaks control, not something in the base script.
Agent 009 Apr 19, 2006, 09:20 PM Awesome script man. I was able to create a perfect custom map with only plains and grassland that wraps both ways. I also of course made it with lots of rivers and forests and no oceans which was perfect for me.
The only problem I found is the map size generation. It would seem to me that the width and height numbers used aren't the ones that are used for a normal map. i.e. If I chose continents, normally without this script the mini-map looks fine. However, with your script if I choose to not override the grid sizes, it seems to randomize the width and height so that it looks irregular in the mini-map. It's not a big deal though because I just use 120 width and 80 height numbers instead, and it came out fine.
Regardless of that minor issue, I think this is the best map script around. :D Saved me a lot of time going into the WB just to make the map I wanted. :p
surt Apr 20, 2006, 09:57 AM Awesome script man. I was able to create a perfect custom map with only plains and grassland that wraps both ways. I also of course made it with lots of rivers and forests and no oceans which was perfect for me.
The only problem I found is the map size generation. It would seem to me that the width and height numbers used aren't the ones that are used for a normal map. i.e. If I chose continents, normally without this script the mini-map looks fine. However, with your script if I choose to not override the grid sizes, it seems to randomize the width and height so that it looks irregular in the mini-map. It's not a big deal though because I just use 120 width and 80 height numbers instead, and it came out fine.
Regardless of that minor issue, I think this is the best map script around. :D Saved me a lot of time going into the WB just to make the map I wanted. :p
That's fully intentional. The goal of the design was to have random maps have as much variety as possible. So if you don't use the override options, then you get a map which is sized to the right amount of area for duel/standard/huge (whatever you picked) but which has randomly picked width and height that fit that amount of area. This can mean that you get a very tall map, or an extremely wide one, or one that just seems 'normal' like the other scripts.
The override width/height options are there precisely so that people who don't like this can get the standard shape, or any shape/size that they want.
Sidewinder00Q Apr 20, 2006, 03:37 PM Surt, first off I want to say thanks for pointing me here. I didn't have this before the 1.61 patch so I don't know if its a compatability issue or if its just my computer.
When I enter the city screen it is really slow, and it doesn't display which health, happiness, and strategic resources are available in the city. This is an at best, a minor glitch, but I neglected my home cities while I was prosecuting a war and now I have no clue what my capital city is lacking to give it a -2 unhealthiness. The Firaxis scripts do not have this issue.
Also, the number you gave for the height and width defaults (on the override menus) are the same for both menus. These should be different because the default maps are not square.
Sidewinder00Q Apr 20, 2006, 10:05 PM Belay the first issue, turns out the homegrown clock mod was responsible for the glitch. Why I only had it with your script and not the Firaxis scripts baffles me, but...it's fixed now.
surt Apr 21, 2006, 10:03 AM Also, the number you gave for the height and width defaults (on the override menus) are the same for both menus. These should be different because the default maps are not square.
Yes, that's true, I copy pasted that, I'll fix that in the next version.
Glad to hear that the other issue wasn't really in SmartMap (I figured ... stuff like that happens long after smartmap has done its work).
Supreme Shogun Apr 22, 2006, 03:23 PM Thank you Surt, I love your script. I use it all the time to create random maps to play on. Very much appreciated, thanks again.
I rate it as 5/5 stars and a must have.
Amra Apr 22, 2006, 05:09 PM Great stuff!
I like this a lot and have added a link to my mod's Recommended Downloads section. Keep up the good work :goodjob:
GiantGuineaPig Apr 22, 2006, 10:41 PM I like the barbarian cities option in the chess map - can you put that into this script??
surt Apr 23, 2006, 10:43 AM I like the barbarian cities option in the chess map - can you put that into this script??
This one I will probably not do. That option uses code that carries a significant risk of breaking mods, so including it would be likely to reduce the number of people who could make effective use of the script. I'll give it some more thought though, maybe a clean way to do something like this will come to me.
Edit: To clarify: I don't think Sto's code is bad or going to break mods, just that you can't interact with the event manager without creating a risk of incompatibility. His solution is to turn off the barbarians option if the mod is touching anything at risk. His solution is valid, I feel like that sort of thing is the domain/responsibility of the mod rather than the map script, and I'd generally prefer to keep my script in the domain of pure map generation.
Rabbit_Alex Apr 24, 2006, 11:12 AM Hey surt,
I noticed in my current game using your script that using the SmartMap terrain option doesn't produce very many (very few actually) floodplains tiles. Could you adjust the script to make it produce some more or should I just use the default terrain option?
Thanks for your opinion.
surt Apr 24, 2006, 09:00 PM Get it on the front page.
Not a ton of enhancements in this one, but some significant performance improvements if you use big maps.
# 8.6
# Correct the override width/height entries to reflect the 'standard'
# width and height numbers (previously this was rough, now it is exact).
# So these numbers now match what scripts that use the base XML produce.
# Added extra plains / extra grass options to the terrain options, which
# will produce more of that type of terrain.
# Added 'new world' coastal/inland start options, which will place start
# positions in the east (as new world) but also favor coastal or inland
# starts.
# Added 'no block' peak options. This forbids peaks from having ocean
# on both sides either vertically of horizontally. This prevents certain
# common cases of resource blocking that some people found annoying.
# Any such peak is reduced to a hill, as a result you will have less total
# peaks on your map.
# Improved performance of land placement in low sea width (removed unneeded checks).
# Improved performance of land placement in high sea width by spatially
# hashing the previously placed lands, and reducing the search for conflicting
# lands to nearby hash entries. This makes a huge difference on big maps with
# high sea levels selected (>50% faster).
# Improved distribution of hills and peaks so that small continents don't get
# a disproportionate amount of them.
# Tweaked up likelihood of floodplains slightly. You may see a bit more desert
# in temperate maps. If you don't like desert much you can of course turn it
# off or switch to tropical which has much less desert.
# Improved performance for placing resources on large maps with lots of resources.
# Overall performance improvements will no generate the most difficult type of map
# (huge, land heavy, high sea level map with 2 or more continents) in less than
# a minute on my p4m-1.8ghz.
Rabbit_Alex Apr 25, 2006, 04:27 PM I tried out the new version last night surt, and it's much better, and runs faster too. The terrain distribution is better with more deserts and floodplains.
keldath Apr 26, 2006, 09:15 AM hi surt
great work on the script - its almost perfect with the options given there :)
i wondered, do you think its possible to use the scripts with variuos mods?
and how do you think this script will run under multiplayer game?
surt Apr 26, 2006, 05:01 PM hi surt
great work on the script - its almost perfect with the options given there :)
i wondered, do you think its possible to use the scripts with variuos mods?
and how do you think this script will run under multiplayer game?
I have not heard of it being incompatible with any mods. I know for certain that it works with SevoMod, Blue Marble Terrain, the last version of Green Mod I tried, and my own mod with no difficulties. There are a few people developing mods who have even requested specific features that are now a part of SmartMap. If you discover a mod with which it is not compatible let me know.
I have also heard of many people using it in multiplayer. I believe (from user reports) that all multiplayer participants need a copy of it, I have not verified this myself (I don't do any multiplayering ... I'm actually rather lousy at the game).
scalawag Apr 27, 2006, 09:37 AM Thank you, I love this map generator!
In response to Keldath, I play multiplayer almost exclusively, and use smartmap now almost exclusively. I *think* only the host needs smartmap, but I'm not certain. I could see problems in the staging area in lan/internet multiplayer if the others didn't. It's a fairly small file, though, easy to email.
Caradoc Apr 27, 2006, 06:57 PM I could use some help finding the right settings.
I'd like to generate a Large or Huge map where each civilization gets a small continent/island, big enough for about 6 loosely packed cities. And I'd like them irregularly shaped (heavy fractals) but not to run together. The idea is to have each civilization develop a bit before sailing out to encounter the others.
I had this set up with the previous version using 12 islands, medium sea at 70%, heavy fractals on a Large map. But now I can't seem to find the right combo.
surt Apr 27, 2006, 07:12 PM I could use some help finding the right settings.
I'd like to generate a Large or Huge map where each civilization gets a small continent/island, big enough for about 6 loosely packed cities. And I'd like them irregularly shaped (heavy fractals) but not to run together. The idea is to have each civilization develop a bit before sailing out to encounter the others.
I had this set up with the previous version using 12 islands, medium sea at 70%, heavy fractals on a Large map. But now I can't seem to find the right combo.
Try using least round, no fragments for irregular shape rather than heavy fragments. Heavy fragments allow the possibility that the continents could run together.
olorin42 Apr 27, 2006, 08:25 PM I have enjoyed maps that have larger lakes / seas interspersed with the land. I experimented and liked the results with the "out of the box" lakes script by doubling the water percentages.
What do you think of the idea of adding a set of selections that would generate a "mostly land" map with many / several larger lakes / seas. What you have now on the "no ocean" seletion with many lakes is you get a bunch of tiny lakes. Maybe a choice of "great lakes so you get a bunch of decent sized lakes that in some cases may interconnect.
BerndN Apr 28, 2006, 05:57 AM Just like to say thanks for this great script :goodjob:
Works like a charme with sevo mod.
surt Apr 28, 2006, 09:47 AM I have enjoyed maps that have larger lakes / seas interspersed with the land. I experimented and liked the results with the "out of the box" lakes script by doubling the water percentages.
What do you think of the idea of adding a set of selections that would generate a "mostly land" map with many / several larger lakes / seas. What you have now on the "no ocean" seletion with many lakes is you get a bunch of tiny lakes. Maybe a choice of "great lakes so you get a bunch of decent sized lakes that in some cases may interconnect.
That's probably not hard to add. Will look at it for the next version.
`DG` Apr 28, 2006, 03:11 PM Is there any way to generate a map style similar to Inland_Sea? I'm sure in a previous version I'd tried it and the sea didnt come out quite right (not very rectangular, whereas it always is in vanilla Civ) but with the latest version i cant seem to get it to come out at all, main settings Land: Pangea and Ocean: Central Sea.
surt Apr 29, 2006, 11:47 AM Is there any way to generate a map style similar to Inland_Sea? I'm sure in a previous version I'd tried it and the sea didnt come out quite right (not very rectangular, whereas it always is in vanilla Civ) but with the latest version i cant seem to get it to come out at all, main settings Land: Pangea and Ocean: Central Sea.
It turns out there's a bug introduced in the last version breaking inland sea. Sorry, will fix soon.
|
|