Smart Map v6

Version 6 released with independent control of forest/jungle density, and various terrain improvements.

Unzip to your publicmaps folder....


Do not refresh or leave this page!

File Description

Version 6 released with independent control of forest/jungle density, and various terrain improvements.

Unzip to your publicmaps folder. Use by selecting customgame, and selecting SmartMap as the map.

This map script can create an incredible assortment of gameplay experiences.

Read More

Download '' (26KB)

Using the continents option, you can choose from 1-8, 12, 18, 24, or 36 land masses. Additional random options are random 2-7 (the default), 1-6,2-5,3-8,4-12.

Using the sea level option, you can restrict the inter-continental separation: low = allowed to merge, med = separated by at least coast (and usually one or two ocean), high = guaranteed separated by at least two ocean

Using the % ocean option, you can configure the amount of ocean on the map, from minimal (pretty much all land with some lakes) to 90% ocean, with a default of random 50-80%.

With %hills and %peaks you can configure the amount of hills and peaks to your likeing. From no hills to 20% hills, and no peaks to 10% peaks, with defaults of 4-14% hills, 1-5% peaks.

With wrap, you can allow for x-wrapping (default), y-wrapping (ala tilted axis), both-wrapping, or neither wrapping.

With terrain, you can get standard, great plains, oasis, or smartmaps own terrain layout (this controls where desert, tundra, etc are placed). SmartMap terrain generation creates terrain appropriate to whatever wrap style you've selected (ice and snow near both poles for example in an un-wrapped world).

With feature, you can likewise get standard, great plains, oasis, or smartmaps own feature generation (features determine where things like oasis, rivers, and flood plains go). SmartMap feature generation has rivers flow away from mountains, and attempts to place things in a nicer way. 

With bonus, you can choose either civ's default bonus placement, or smartmap's own. This will place bonuses such as gold, incense, iron, etc on the map. Smartmaps placement strategy attempts to do a fairer job of distributing resources to make the maps more strategically interesting and fun to play.

With start placement, you can choose either the standard player placement algorithm, or SmartMap's own. Smartmap's placement algorithm avoids those occasional horrific starts you see with the standard player placement algorithm.

With the size picker, you pick the rough size of the map (the usual tiny, small, standard, large, huge), but the x and y dimensions are picked randomly to fit that size. The screenshots below are all 'standard' size, but note the variety of map shapes!

With the override width and height pickers, you can force smartmap to generate a map exactly the size you desire. This will allow for truly enormous maps, if you have the memory for it (as huge already takes nearly a gig of memory to use, you will likely need 2 gig to get much bigger).

Use all of these options in any combination! Select random on all and you'll never know what to expect!

# 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.
# 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

Read More

Comments on this File

There are no comments yet. Be the first!


50 XP

Registered 12th February 2006

3 Files Uploaded

Share This File
Embed File