<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexMax</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexMax"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/AlexMax"/>
	<updated>2026-11-08T18:00:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:AlexMax&amp;diff=20386</id>
		<title>User:AlexMax</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=User:AlexMax&amp;diff=20386"/>
		<updated>2005-12-30T16:35:07Z</updated>

		<summary type="html">&lt;p&gt;AlexMax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m trying to figure out how to create maps for this game.  I&#039;m adding information to the wiki as I find it.&lt;/div&gt;</summary>
		<author><name>AlexMax</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18565</id>
		<title>Tutorial:CreateMaps(Fnordia et al)</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18565"/>
		<updated>2005-12-30T16:33:50Z</updated>

		<summary type="html">&lt;p&gt;AlexMax: /* The Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Original by aGorm, with help from LathanStanley&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- BEGIN COMMENT&lt;br /&gt;
&lt;br /&gt;
Where possible I (rjn945) have replaced HTML with wiki markup.&lt;br /&gt;
A quick guide to wiki markup is available at:&lt;br /&gt;
http://taspring.clan-sy.com/wiki/Help:Editing&lt;br /&gt;
In short: &lt;br /&gt;
   Use #&#039;s for numbered lists&lt;br /&gt;
   Use *&#039;s for unnumbered lists&lt;br /&gt;
   And replace &amp;lt;br&amp;gt;&#039;s with blank lines&lt;br /&gt;
&lt;br /&gt;
aGorm... Fair enough.. thanks for the clean up.&lt;br /&gt;
&lt;br /&gt;
END COMMENT --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The Idea==&lt;br /&gt;
First of all you need an idea. There is no point (OK, there is some point for test purposes) in making a map just like another one that already exists. You need to think of certain things before you make your map.&lt;br /&gt;
# Is this map idea different, not just a copy of someone else&#039;s?&lt;br /&gt;
# Does my map idea give each player a fair share of the cover and high ground?&lt;br /&gt;
# Is my map idea possible to make?&lt;br /&gt;
# Is it possible with the amount of time I&#039;m willing to spend?&lt;br /&gt;
&lt;br /&gt;
If you answered yes to the above, then you are 25% of the way towards making your map!&lt;br /&gt;
&lt;br /&gt;
You should probably doodle it on a piece of paper to act as a guide later.&lt;br /&gt;
&lt;br /&gt;
==The Tools==&lt;br /&gt;
With your idea hopefully sketched out, it&#039;s time to get the tools to make the map! (You can skip this if you already have them.)&lt;br /&gt;
&lt;br /&gt;
For all your map compiling needs you should first download the [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 newest MapConv program].&lt;br /&gt;
&lt;br /&gt;
You will also need some image editing software. Favorites are Photoshop, the [http://www.gimp.org/ GIMP], And Paintshop Pro.&lt;br /&gt;
The GIMP, however, is the only one that&#039;s free!&lt;br /&gt;
(I&#039;m going to have to assume you know how to use the program you choose. If you can&#039;t there are loads of tutorials on the net.)&lt;br /&gt;
&lt;br /&gt;
You may also want to check out [http://www.planetside.co.uk/terragen/ Terragen] for generating terrain. But as you have to pay to render anything of a good size, I won&#039;t mention it other than here.&lt;br /&gt;
&lt;br /&gt;
Another tool you might find useful is the freeware tool [http://www.delphigl.de/projects/terrtexgen/eng_index.html TerrTexGen].  It&#039;s useful for previewing your heightmap before compiling, but unless your texturemap is 4096 on both sides, you might find that the texturemaps that it creates are too small.&lt;br /&gt;
&lt;br /&gt;
Finally, there is tool called [http://www.bundysoft.com/L3DT/ L3DT] which you might also find useful.  It seems to be a program that is specificly designed for creating large height/texture maps.  The free version is capable of rendering a heightmap as big as 4096x4096, and can generate a texturemap that is proportional to the heightmap.  Of the mentioned packages, this seems the most useful and complete.&lt;br /&gt;
&lt;br /&gt;
==Preparing your map==&lt;br /&gt;
This is the fun part! And also, often, the longest part.&lt;br /&gt;
&lt;br /&gt;
For a map you will need several different things:&lt;br /&gt;
# a texture map&lt;br /&gt;
# a height map&lt;br /&gt;
# a metal map&lt;br /&gt;
&lt;br /&gt;
And several optional things for added functionality:&lt;br /&gt;
# a tile map&lt;br /&gt;
&lt;br /&gt;
They all have certain needs! Read this bit carfully!&lt;br /&gt;
&lt;br /&gt;
===Texture Map===&lt;br /&gt;
All maps are based on a texture image. This image&#039;s width and height must be an exact multiple of 1024 pixels. So, for instance, you can have a &amp;quot;4096 by 8192&amp;quot; image, but not a &amp;quot;4096 by 4608&amp;quot; image, as 4608 does not divide by 1024. It, like  all three maps, must be saved as a 24 bit BMP. A 1024x1024 Texture will produce a map shown as &#039;2x2&#039; in the launcher.&lt;br /&gt;
&lt;br /&gt;
It may look like whatever you want! Find a texture (preferably, one that you can tile seamlessly) and fill your texture map with it. You could, for instance, fill the whole image with a sand texture. This would make your whole world look like sand. You could then decide to add a few patches of grass to it by finding a suitable grass texture and adding it on in patches. So you&#039;d have a map that was mostly sand with a few patches of green.&lt;br /&gt;
&lt;br /&gt;
Because of the way the map compiler work, it will &#039;&#039;&#039;greatly&#039;&#039;&#039; reduce your map filesize if you use 32x32 tiles on your texture map. So, whenever you have to fill a large area with a repeating pattern, make sure the small square you&#039;re repeating is 32x32 (or a multiple of it).&lt;br /&gt;
&lt;br /&gt;
Hey, wtf, Tile Map and Texture Map are about the same stuff, someone merge those section!!&lt;br /&gt;
&lt;br /&gt;
===Height Map===&lt;br /&gt;
Next is the height map. This must be exactly one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel!&#039;&#039;&#039; For instance, if the dimensions of your texture map are &amp;quot;4096 by 8192&amp;quot;, divide 4096 and 8192 each by 8 and add one to the result of each. The result for this example would be &amp;quot;513 by 1025&amp;quot;. The height map is a black and white BMP. Only use black and white, no colour! (well its better to work it as a greyscale image, and when saving to process, convert to rgb and save as bmp, that way you get a 24 bit bmp)&lt;br /&gt;
&lt;br /&gt;
White areas are the tops of mountains; black areas are the sea floor or the bottom of valleys. The shades of grey between are the different heights between! When you draw your heightmap, make sure the white blends into the black with greys. I suggest you use the blur tool. If you have a white splodge in a patch of black you will have a very tall pillar that won&#039;t look natural at all!&lt;br /&gt;
&lt;br /&gt;
===Metal Map===&lt;br /&gt;
Finally, you need a metal map. This is the same size as the height map, one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel.&#039;&#039;&#039; On this one you paint down red (in verying degrees) to represent metal. So a red spot that is RGB(50,0,0) will provide about a 5th of the metal patch of red RGB(255,0,0) will give.&lt;br /&gt;
&lt;br /&gt;
On this map you can also place green pixels. Each green pixel will create 1 geothermal vent. If you put down a green splodge you will get a cluster of geo vents! Only place 1 pixel.&lt;br /&gt;
&lt;br /&gt;
Ensure you have all three saved as 24 bit BMPs and you&#039;re ready to convert it all to a map!&lt;br /&gt;
&lt;br /&gt;
===Tile Map===&lt;br /&gt;
Tiles are basically repeating images. They are exactly the same. The map compiler, by comparing peices to the texture to each other, sees which little square tiles in your texture are exactly alike. If they are the same, instead of wasting precious harddrive and bandwidth space, the compiler sets a reference from on tile to the next. If your map is made out of only one small tile, repeating for the whole texture, the map will compress extreemly well. Down to only a few kilobytes. But this would look very boring. So most map makers use a variety of tiles to make their map more interesting. A good map maker will find a balance between looks and size.&lt;br /&gt;
&lt;br /&gt;
To make a tile:&lt;br /&gt;
Open up your image editing program.&lt;br /&gt;
Create a new image.&lt;br /&gt;
As the Spring engine uses a 32 pixel tile engine, you have to set your image size to 32 pixels, or a multiple of 32 pixels. Therefore, tile sizes should be one of the following:&lt;br /&gt;
32x32 pixels,&lt;br /&gt;
64x64 pixels,&lt;br /&gt;
96x96 pixels,&lt;br /&gt;
128x128 pixels&lt;br /&gt;
etc.&lt;br /&gt;
Tiles also do not have to be square, it is perfectly possible to make rectangular tiles. Tiles should also be seamless, so that when repeated do not seem to have an obvious edge.&lt;br /&gt;
&lt;br /&gt;
Once you have created your tile, do a Fill operation with a texture. The texture of course is our tile that we have made in the previous step. If you do not know how to do this, ask around. Make sure to state which image editing software you use, so we can help you easier.&lt;br /&gt;
&lt;br /&gt;
Now, once you have your basic tile down, add in different features on your map, such as mountains, rivers, seas, deserts, grasslands, or whatever your map has. Remeber, for smaler file sizes make these different features out of tiles as well. If you do all of this properly, you can get your file size down very small, and this will keep everyone happy.&lt;br /&gt;
&lt;br /&gt;
== MapConv.exe ==&lt;br /&gt;
&lt;br /&gt;
Instructions pulled from [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 the newest MapConv program]. If all goes well, the &amp;lt;code&amp;gt;MapConv.exe&amp;lt;/code&amp;gt; should create four new files: &amp;lt;code&amp;gt;mini.bmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mini.dds&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;yourmapname.smf&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;yourmapname.smt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USAGE: &lt;br /&gt;
&lt;br /&gt;
   mapconv  [-l] [-i] [-c &amp;lt;compression&amp;gt;] -x &amp;lt;max height&amp;gt; -n &amp;lt;min height&amp;gt; [-o &lt;br /&gt;
   &amp;lt;Output file&amp;gt;] [-e &amp;lt;tile file&amp;gt;] [-y &amp;lt;Typemap file&amp;gt;] -m &amp;lt;Metalmap file&amp;gt; -a &lt;br /&gt;
   &amp;lt;Heightmap file&amp;gt; -t &amp;lt;Texture file&amp;gt; [--] [-v] [-h]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
&lt;br /&gt;
   -l,  --lowpass&lt;br /&gt;
     Lowpass filters the heightmap&lt;br /&gt;
&lt;br /&gt;
   -i,  --invert&lt;br /&gt;
     Inverts the height map vertically (not the height values but the height map &lt;br /&gt;
     (uhm someone rewrite this))&lt;br /&gt;
&lt;br /&gt;
   -c &amp;lt;compression&amp;gt;,  --compress &amp;lt;compression&amp;gt;&lt;br /&gt;
     (value required)  How much we should try to compress the texture file. &lt;br /&gt;
     Default value 0.8 . (lower=higher quality, larger file)&lt;br /&gt;
&lt;br /&gt;
   -x &amp;lt;max height&amp;gt;,  --maxheight &amp;lt;max height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the max(0xffff) level &lt;br /&gt;
     of the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -n &amp;lt;min height&amp;gt;,  --minheight &amp;lt;min height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the min(0) level of &lt;br /&gt;
     the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -o &amp;lt;Output file&amp;gt;,  --outfile &amp;lt;Output file&amp;gt;&lt;br /&gt;
     (value required)  The name of the created map&lt;br /&gt;
&lt;br /&gt;
   -e &amp;lt;tile file&amp;gt;,  --externaltilefile &amp;lt;tile file&amp;gt;&lt;br /&gt;
     (value required)  External tile file that will be used for finding tiles, &lt;br /&gt;
     tiles not found in this will be added in a new tile file&lt;br /&gt;
&lt;br /&gt;
   -y &amp;lt;Typemap file&amp;gt;,  --typemap &amp;lt;Typemap file&amp;gt;&lt;br /&gt;
     (value required)  Type map to use, uses the red channel to decide type, &lt;br /&gt;
     types are defined in the .smd, if this argument is skipped the map will be &lt;br /&gt;
     all type 0&lt;br /&gt;
&lt;br /&gt;
   -m &amp;lt;Metalmap file&amp;gt;,  --metalmap &amp;lt;Metalmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Metal map to use, red channel is amount of &lt;br /&gt;
     metal, green=255 is where to place geos (one pixel=one geo). Is resized to &lt;br /&gt;
     fit the mapsize&lt;br /&gt;
&lt;br /&gt;
   -a &amp;lt;Heightmap file&amp;gt;,  --heightmap &amp;lt;Heightmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input heightmap to use for the map, this &lt;br /&gt;
     should be in 16 bit raw format (.raw extension) or an image file. Must be &lt;br /&gt;
     xsize*128+1 x ysize*128+1 in size.&lt;br /&gt;
&lt;br /&gt;
   -t &amp;lt;Texture file&amp;gt;,  --intex &amp;lt;Texture file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input bitmap to use for the map. Must be &lt;br /&gt;
     xsize*1024 x ysize*1024 in size. (xsize,ysize integers determined from this &lt;br /&gt;
     file)&lt;br /&gt;
&lt;br /&gt;
   --,  --ignore_rest&lt;br /&gt;
     Ignores the rest of the labeled arguments following this flag.&lt;br /&gt;
&lt;br /&gt;
   -v,  --version&lt;br /&gt;
     Displays version information and exits.&lt;br /&gt;
&lt;br /&gt;
   -h,  --help&lt;br /&gt;
     Displays usage information and exits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Convers a series of bmp/raw files to a spring map. This just creates the .smf &lt;br /&gt;
   file, you will also have to create a .smd file using a text editor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mothers MapConv==&lt;br /&gt;
The usage is the same as above, with the following exceptions:&lt;br /&gt;
All features (including GeoVent/Tree/Grass) are now on their own FeatureMap.  This is a 24bit bmp specified with the -f &amp;lt;featuremapname.bmp&amp;gt; flag.&lt;br /&gt;
&#039;&#039;It should be 1/8th the resolution of your map.&#039;&#039; (i.e. 1 pixel smaller in each direction then your heightmap)&lt;br /&gt;
&lt;br /&gt;
Tree&#039;s and GeoVents are placed on the green layer.&lt;br /&gt;
*255 Places a GeoVent&lt;br /&gt;
*200-215 Places tree types 1-16&lt;br /&gt;
&lt;br /&gt;
MapConv will try to place these features in the exact spot you place them, it will then go into crackhead mode if it cannot.&lt;br /&gt;
&lt;br /&gt;
Grass is the blue layer.  The blue value  maps to a &#039;pseudo-density&#039; of the grass.  The &#039;grass&#039; map in the engine is very very low resolution,  so be aware that you will not get nice linear results.  255=full grass, 0=no grass.&lt;br /&gt;
&lt;br /&gt;
The red layer places &#039;Arbitrary Features,&#039; aka wreckages.  One pixel of red equals one feature.  Red &#039;1&#039; gives you a feature of the first arbitrary type, 2 the second, 3 the third, and so on.&lt;br /&gt;
&lt;br /&gt;
===But what are these &#039;Arbitrary Features,&#039; Im so confused!===&lt;br /&gt;
They are &#039;features&#039; found in the /features/All Worlds or /features/corpses filesystems.  Which feature is &#039;type 1&#039; is defined on a map-by-map basis via a new file called &#039;fs.txt&#039;.  This file should contain &amp;lt;cr&amp;gt; delimited feature names. The first line is the feature placed when a red=255 dot is found, etc.&lt;br /&gt;
&lt;br /&gt;
=== Ok, Now what do I do? ===&lt;br /&gt;
If you are using any custom features, and/or you want to mod-proof your map, you should include them in the sd7 that you package the map in.  The tree structure should look something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;mapname.sd7&amp;gt;&lt;br /&gt;
     -maps/&lt;br /&gt;
          -mapname.smf&lt;br /&gt;
          -mapname.smt&lt;br /&gt;
          -mapname.smd&lt;br /&gt;
     -Objects3d/&lt;br /&gt;
          -&amp;lt;featurename[s]&amp;gt;.3do(specified in the tdf)&lt;br /&gt;
     -features/&lt;br /&gt;
          -All Worlds/ &lt;br /&gt;
           (and/or) &lt;br /&gt;
          -Corpses/&lt;br /&gt;
               -&amp;lt;featurename[s]&amp;gt;.tdf&lt;br /&gt;
     -textures/&lt;br /&gt;
          -tatex/&lt;br /&gt;
               -&amp;lt;texname[s]&amp;gt;00.bmp or .tga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without getting into modding/unit making I will say that the &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; tells you the name of the &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; (&amp;quot;&amp;lt;code&amp;gt;Object=&amp;lt;/code&amp;gt;&amp;quot;), and the name of the &#039;feature&#039; is in the top brackets.  The &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; specifies the texture names.  The engine looks for those texture names + 00 in either bmp or tga format in tatex. &lt;br /&gt;
&lt;br /&gt;
Examples of a built-in XTA wreckage name would be &amp;lt;code&amp;gt;armckfus_dead&amp;lt;/code&amp;gt; which would be looking for a tdf (likely &amp;lt;code&amp;gt;armckfus_dead.tdf&amp;lt;/code&amp;gt;) that has a &amp;lt;code&amp;gt;[armckfus_dead]&amp;lt;/code&amp;gt; section which then specified something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;Object=armckfus_dead&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;armckfus_dead.3do&amp;lt;/code&amp;gt; would then specify some texture like &amp;lt;code&amp;gt;wreck01b&amp;lt;/code&amp;gt; which would go looking for either a &amp;lt;code&amp;gt;wreck01b00.bmp&amp;lt;c/ode&amp;gt; or &amp;lt;code&amp;gt;wreck01b00.tga&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
[http://fileuniverse.com/?p=showitem&amp;amp;ID=1421 Start with this version of MapConv]&lt;br /&gt;
or&lt;br /&gt;
[http://www.fileuniverse.com/?p=showitem&amp;amp;ID=1507 This one]&lt;br /&gt;
[I will clean this up and add more later --Mother]&lt;br /&gt;
&lt;br /&gt;
==Making your map work==&lt;br /&gt;
This is the final push. Once Sharp map has finshed it will spit out a .sm2 file. This needs to be copyed to the MAPS folder in Spring. But you still need one more thing: an .smd file. Basically, this file tells the game things like the maximum metal, the light colours, the clouds, etc. (All the bits you were thinking that you hadn&#039;t done yet!)&lt;br /&gt;
&lt;br /&gt;
I would suggest you copy the .smd of another map and fiddle with the settings until you get what you want. smd&#039;s can be opened in notepade or similar. Look at all the .smd&#039;s so you can get a jist of what each option does. Make sure both the .sm2 and .smd have the same file name then start up Spring (not the client!) in [http://taspring.clan-sy.com/wiki/FAQ#People_talk_about_.27Single_Player.27._How_do_I_start_a_single_player_game.3F single-player mode] and run the commanders script. Choose your map and away you go!&lt;br /&gt;
&lt;br /&gt;
==SMD Rundown==&lt;br /&gt;
What follows is all that we (aGorm and LathanStanley) have figured out in the SMD&#039;s. Its by no means the be all and end all, but it&#039;s the next best thing.&lt;br /&gt;
&lt;br /&gt;
* Goto [[Maps:SMD]] for a more detailed listing&lt;br /&gt;
 &lt;br /&gt;
===General Map Information===&lt;br /&gt;
* Description is just a short description of your map. Keep it simple.&lt;br /&gt;
* TidalStrength determines how much energy tidal generators will produce. A normal figure is around 20.&lt;br /&gt;
* Gravity, as you would expect, affects ballisitcs and how far units fly after an explosion.&lt;br /&gt;
* MaxMetal is the maximum amount of metal you will gain from one game square in 1 second from an area of metal that had a red value of 255 in your metal map. If making an old style metal deposit map, then this will be quite high: maybe 2 or 3. If you are making a new style metal-all-over-the-place-map, then it will be low: perhaps 0.2. Also for old style maps, you&#039;ll have to fiddle with the...&lt;br /&gt;
* ExtractorRadius, which is the area that is harvested by 1 metal extractor. For old style maps make this very small, so as they only take from one deposit.&lt;br /&gt;
&lt;br /&gt;
=== Atmosphere, Water Colours ===&lt;br /&gt;
Each value (it would appear this bit is by no means gospel) is a representation of the [[RGB]] values for that parameter. It would appear to be relative, i.e. you can put in what ever numbers you like and the game will work out what you want. &lt;br /&gt;
&lt;br /&gt;
The best way to go about it is to look at it as percentages.&lt;br /&gt;
The numbers 1, 0.5, 0.2 refer to 100% red, 50% green and 20% blue. But 2, 1, 0.4, will get the same result. Using numbers below one for all the numbers will result in the colour being less bright.&lt;br /&gt;
&lt;br /&gt;
This is all a bit confusing so an example will be given:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SkyColor=0.2 0.1 0.5;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the sky is coloured with 20% red, 10% green, and 50% blue, approximatly RGB(51,25,127), resulting in a very deep night-time blue. Other colours are added to the initial sky colour. If you set your sun as being a pale yellow and it came out rather green, this is why. &lt;br /&gt;
&lt;br /&gt;
One helpful tip is &#039;&#039;negative&#039;&#039; colour. That&#039;s right: you can type in a negative number for a colour and it will remove it from the base sky colour. Just be careful not to go below the original values or you may get a surprise.&lt;br /&gt;
&lt;br /&gt;
===The Sun System/Shadow System===&lt;br /&gt;
The Sun System/Shadow System is quite a useful tool as well in making your maps look &#039;&#039;well done&#039;&#039;.  &lt;br /&gt;
Within the &amp;lt;code&amp;gt;.smd&amp;lt;/code&amp;gt; file there is a line: &lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;SunDir=-1 1 -.5;	//direction of sun&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;(The part after the &amp;quot;//&amp;quot; is a comment)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The numbers &amp;quot;-1&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;.5&amp;quot; determine the angle and elevation of the sunlight system. &lt;br /&gt;
&lt;br /&gt;
The first number is the X angle (East/West) (from -1 to 1) where any negative number means the sun is on the West (and therefore shadows will be cast east), and any positive number means the sun is on the East (and therefore shadows will be cast west), and if the number is 0 there are no east or west shadows, the sun is directly above you. &lt;br /&gt;
&lt;br /&gt;
The second is its elevation, (0 to 1), this number is how far from the horizion the sun is, ignoring it&#039;s angle. Thus, 1 puts the sun directly overhead (while still casting angular shadows) and 0 putting it directly on the horizion. &lt;br /&gt;
&lt;br /&gt;
The final number is the Z angle (North/South). (I know, I know, they wrote the engine with Y as elevation and Z as vertical. Don&#039;t blame me.) It is just like the East West positioning, where negative numbers put them on the North, and positive numbers put them on the South. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example Usage:&#039;&#039;&#039; If you want the shadows &#039;&#039;in&#039;&#039; one of the boxes (your shadow casting surface is in the middle), use the numbers provided, or start from them and tweak the angle and sun height as seen fit.&lt;br /&gt;
&lt;br /&gt;
[[Image:ShadowDirection.gif]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; on the current build, it &#039;&#039;will&#039;&#039; cast the shadows in the proper direction, etc. Negative direction numbers tend to make some maps unstable and cause crashes. The best solution would be to rotate or flip your map to where the shadows point up or right (North or West). I do believe these bugs are being worked on and will be fixed soon.&lt;br /&gt;
&lt;br /&gt;
We can only hope this has been helpful! Any questions, or things you think we have missed, please ask us in the maps section.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>AlexMax</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18564</id>
		<title>Tutorial:CreateMaps(Fnordia et al)</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18564"/>
		<updated>2005-12-30T16:25:37Z</updated>

		<summary type="html">&lt;p&gt;AlexMax: /* The Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Original by aGorm, with help from LathanStanley&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- BEGIN COMMENT&lt;br /&gt;
&lt;br /&gt;
Where possible I (rjn945) have replaced HTML with wiki markup.&lt;br /&gt;
A quick guide to wiki markup is available at:&lt;br /&gt;
http://taspring.clan-sy.com/wiki/Help:Editing&lt;br /&gt;
In short: &lt;br /&gt;
   Use #&#039;s for numbered lists&lt;br /&gt;
   Use *&#039;s for unnumbered lists&lt;br /&gt;
   And replace &amp;lt;br&amp;gt;&#039;s with blank lines&lt;br /&gt;
&lt;br /&gt;
aGorm... Fair enough.. thanks for the clean up.&lt;br /&gt;
&lt;br /&gt;
END COMMENT --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The Idea==&lt;br /&gt;
First of all you need an idea. There is no point (OK, there is some point for test purposes) in making a map just like another one that already exists. You need to think of certain things before you make your map.&lt;br /&gt;
# Is this map idea different, not just a copy of someone else&#039;s?&lt;br /&gt;
# Does my map idea give each player a fair share of the cover and high ground?&lt;br /&gt;
# Is my map idea possible to make?&lt;br /&gt;
# Is it possible with the amount of time I&#039;m willing to spend?&lt;br /&gt;
&lt;br /&gt;
If you answered yes to the above, then you are 25% of the way towards making your map!&lt;br /&gt;
&lt;br /&gt;
You should probably doodle it on a piece of paper to act as a guide later.&lt;br /&gt;
&lt;br /&gt;
==The Tools==&lt;br /&gt;
With your idea hopefully sketched out, it&#039;s time to get the tools to make the map! (You can skip this if you already have them.)&lt;br /&gt;
&lt;br /&gt;
For all your map compiling needs you should first download the [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 newest MapConv program].&lt;br /&gt;
&lt;br /&gt;
You will also need some image editing software. Favorites are Photoshop, the [http://www.gimp.org/ GIMP], And Paintshop Pro.&lt;br /&gt;
The GIMP, however, is the only one that&#039;s free!&lt;br /&gt;
(I&#039;m going to have to assume you know how to use the program you choose. If you can&#039;t there are loads of tutorials on the net.)&lt;br /&gt;
&lt;br /&gt;
You may also want to check out [http://www.planetside.co.uk/terragen/ Terragen] for generating terrain. But as you have to pay to render anything of a good size, I won&#039;t mention it other than here.&lt;br /&gt;
&lt;br /&gt;
Another tool you might find useful is the freeware tool [http://www.delphigl.de/projects/terrtexgen/eng_index.html TerrTexGen].  It&#039;s useful for previewing your heightmap before compiling, but unless your texturemap is 4096 on both sides, you might find that the texturemaps that it creates are too small.&lt;br /&gt;
&lt;br /&gt;
Finally, there is tool called [http://www.bundysoft.com/L3DT/ L3DT] which you might also find useful.  It seems to be a program that is specificly designed for creating large height/texture maps.  (I&#039;m still fooling around with it though --[[User:AlexMax|AlexMax]] 17:25, 30 Dec 2005 (W. Europe Standard Time))&lt;br /&gt;
&lt;br /&gt;
==Preparing your map==&lt;br /&gt;
This is the fun part! And also, often, the longest part.&lt;br /&gt;
&lt;br /&gt;
For a map you will need several different things:&lt;br /&gt;
# a texture map&lt;br /&gt;
# a height map&lt;br /&gt;
# a metal map&lt;br /&gt;
&lt;br /&gt;
And several optional things for added functionality:&lt;br /&gt;
# a tile map&lt;br /&gt;
&lt;br /&gt;
They all have certain needs! Read this bit carfully!&lt;br /&gt;
&lt;br /&gt;
===Texture Map===&lt;br /&gt;
All maps are based on a texture image. This image&#039;s width and height must be an exact multiple of 1024 pixels. So, for instance, you can have a &amp;quot;4096 by 8192&amp;quot; image, but not a &amp;quot;4096 by 4608&amp;quot; image, as 4608 does not divide by 1024. It, like  all three maps, must be saved as a 24 bit BMP. A 1024x1024 Texture will produce a map shown as &#039;2x2&#039; in the launcher.&lt;br /&gt;
&lt;br /&gt;
It may look like whatever you want! Find a texture (preferably, one that you can tile seamlessly) and fill your texture map with it. You could, for instance, fill the whole image with a sand texture. This would make your whole world look like sand. You could then decide to add a few patches of grass to it by finding a suitable grass texture and adding it on in patches. So you&#039;d have a map that was mostly sand with a few patches of green.&lt;br /&gt;
&lt;br /&gt;
Because of the way the map compiler work, it will &#039;&#039;&#039;greatly&#039;&#039;&#039; reduce your map filesize if you use 32x32 tiles on your texture map. So, whenever you have to fill a large area with a repeating pattern, make sure the small square you&#039;re repeating is 32x32 (or a multiple of it).&lt;br /&gt;
&lt;br /&gt;
Hey, wtf, Tile Map and Texture Map are about the same stuff, someone merge those section!!&lt;br /&gt;
&lt;br /&gt;
===Height Map===&lt;br /&gt;
Next is the height map. This must be exactly one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel!&#039;&#039;&#039; For instance, if the dimensions of your texture map are &amp;quot;4096 by 8192&amp;quot;, divide 4096 and 8192 each by 8 and add one to the result of each. The result for this example would be &amp;quot;513 by 1025&amp;quot;. The height map is a black and white BMP. Only use black and white, no colour! (well its better to work it as a greyscale image, and when saving to process, convert to rgb and save as bmp, that way you get a 24 bit bmp)&lt;br /&gt;
&lt;br /&gt;
White areas are the tops of mountains; black areas are the sea floor or the bottom of valleys. The shades of grey between are the different heights between! When you draw your heightmap, make sure the white blends into the black with greys. I suggest you use the blur tool. If you have a white splodge in a patch of black you will have a very tall pillar that won&#039;t look natural at all!&lt;br /&gt;
&lt;br /&gt;
===Metal Map===&lt;br /&gt;
Finally, you need a metal map. This is the same size as the height map, one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel.&#039;&#039;&#039; On this one you paint down red (in verying degrees) to represent metal. So a red spot that is RGB(50,0,0) will provide about a 5th of the metal patch of red RGB(255,0,0) will give.&lt;br /&gt;
&lt;br /&gt;
On this map you can also place green pixels. Each green pixel will create 1 geothermal vent. If you put down a green splodge you will get a cluster of geo vents! Only place 1 pixel.&lt;br /&gt;
&lt;br /&gt;
Ensure you have all three saved as 24 bit BMPs and you&#039;re ready to convert it all to a map!&lt;br /&gt;
&lt;br /&gt;
===Tile Map===&lt;br /&gt;
Tiles are basically repeating images. They are exactly the same. The map compiler, by comparing peices to the texture to each other, sees which little square tiles in your texture are exactly alike. If they are the same, instead of wasting precious harddrive and bandwidth space, the compiler sets a reference from on tile to the next. If your map is made out of only one small tile, repeating for the whole texture, the map will compress extreemly well. Down to only a few kilobytes. But this would look very boring. So most map makers use a variety of tiles to make their map more interesting. A good map maker will find a balance between looks and size.&lt;br /&gt;
&lt;br /&gt;
To make a tile:&lt;br /&gt;
Open up your image editing program.&lt;br /&gt;
Create a new image.&lt;br /&gt;
As the Spring engine uses a 32 pixel tile engine, you have to set your image size to 32 pixels, or a multiple of 32 pixels. Therefore, tile sizes should be one of the following:&lt;br /&gt;
32x32 pixels,&lt;br /&gt;
64x64 pixels,&lt;br /&gt;
96x96 pixels,&lt;br /&gt;
128x128 pixels&lt;br /&gt;
etc.&lt;br /&gt;
Tiles also do not have to be square, it is perfectly possible to make rectangular tiles. Tiles should also be seamless, so that when repeated do not seem to have an obvious edge.&lt;br /&gt;
&lt;br /&gt;
Once you have created your tile, do a Fill operation with a texture. The texture of course is our tile that we have made in the previous step. If you do not know how to do this, ask around. Make sure to state which image editing software you use, so we can help you easier.&lt;br /&gt;
&lt;br /&gt;
Now, once you have your basic tile down, add in different features on your map, such as mountains, rivers, seas, deserts, grasslands, or whatever your map has. Remeber, for smaler file sizes make these different features out of tiles as well. If you do all of this properly, you can get your file size down very small, and this will keep everyone happy.&lt;br /&gt;
&lt;br /&gt;
== MapConv.exe ==&lt;br /&gt;
&lt;br /&gt;
Instructions pulled from [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 the newest MapConv program]. If all goes well, the &amp;lt;code&amp;gt;MapConv.exe&amp;lt;/code&amp;gt; should create four new files: &amp;lt;code&amp;gt;mini.bmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mini.dds&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;yourmapname.smf&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;yourmapname.smt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USAGE: &lt;br /&gt;
&lt;br /&gt;
   mapconv  [-l] [-i] [-c &amp;lt;compression&amp;gt;] -x &amp;lt;max height&amp;gt; -n &amp;lt;min height&amp;gt; [-o &lt;br /&gt;
   &amp;lt;Output file&amp;gt;] [-e &amp;lt;tile file&amp;gt;] [-y &amp;lt;Typemap file&amp;gt;] -m &amp;lt;Metalmap file&amp;gt; -a &lt;br /&gt;
   &amp;lt;Heightmap file&amp;gt; -t &amp;lt;Texture file&amp;gt; [--] [-v] [-h]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
&lt;br /&gt;
   -l,  --lowpass&lt;br /&gt;
     Lowpass filters the heightmap&lt;br /&gt;
&lt;br /&gt;
   -i,  --invert&lt;br /&gt;
     Inverts the height map vertically (not the height values but the height map &lt;br /&gt;
     (uhm someone rewrite this))&lt;br /&gt;
&lt;br /&gt;
   -c &amp;lt;compression&amp;gt;,  --compress &amp;lt;compression&amp;gt;&lt;br /&gt;
     (value required)  How much we should try to compress the texture file. &lt;br /&gt;
     Default value 0.8 . (lower=higher quality, larger file)&lt;br /&gt;
&lt;br /&gt;
   -x &amp;lt;max height&amp;gt;,  --maxheight &amp;lt;max height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the max(0xffff) level &lt;br /&gt;
     of the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -n &amp;lt;min height&amp;gt;,  --minheight &amp;lt;min height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the min(0) level of &lt;br /&gt;
     the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -o &amp;lt;Output file&amp;gt;,  --outfile &amp;lt;Output file&amp;gt;&lt;br /&gt;
     (value required)  The name of the created map&lt;br /&gt;
&lt;br /&gt;
   -e &amp;lt;tile file&amp;gt;,  --externaltilefile &amp;lt;tile file&amp;gt;&lt;br /&gt;
     (value required)  External tile file that will be used for finding tiles, &lt;br /&gt;
     tiles not found in this will be added in a new tile file&lt;br /&gt;
&lt;br /&gt;
   -y &amp;lt;Typemap file&amp;gt;,  --typemap &amp;lt;Typemap file&amp;gt;&lt;br /&gt;
     (value required)  Type map to use, uses the red channel to decide type, &lt;br /&gt;
     types are defined in the .smd, if this argument is skipped the map will be &lt;br /&gt;
     all type 0&lt;br /&gt;
&lt;br /&gt;
   -m &amp;lt;Metalmap file&amp;gt;,  --metalmap &amp;lt;Metalmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Metal map to use, red channel is amount of &lt;br /&gt;
     metal, green=255 is where to place geos (one pixel=one geo). Is resized to &lt;br /&gt;
     fit the mapsize&lt;br /&gt;
&lt;br /&gt;
   -a &amp;lt;Heightmap file&amp;gt;,  --heightmap &amp;lt;Heightmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input heightmap to use for the map, this &lt;br /&gt;
     should be in 16 bit raw format (.raw extension) or an image file. Must be &lt;br /&gt;
     xsize*128+1 x ysize*128+1 in size.&lt;br /&gt;
&lt;br /&gt;
   -t &amp;lt;Texture file&amp;gt;,  --intex &amp;lt;Texture file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input bitmap to use for the map. Must be &lt;br /&gt;
     xsize*1024 x ysize*1024 in size. (xsize,ysize integers determined from this &lt;br /&gt;
     file)&lt;br /&gt;
&lt;br /&gt;
   --,  --ignore_rest&lt;br /&gt;
     Ignores the rest of the labeled arguments following this flag.&lt;br /&gt;
&lt;br /&gt;
   -v,  --version&lt;br /&gt;
     Displays version information and exits.&lt;br /&gt;
&lt;br /&gt;
   -h,  --help&lt;br /&gt;
     Displays usage information and exits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Convers a series of bmp/raw files to a spring map. This just creates the .smf &lt;br /&gt;
   file, you will also have to create a .smd file using a text editor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mothers MapConv==&lt;br /&gt;
The usage is the same as above, with the following exceptions:&lt;br /&gt;
All features (including GeoVent/Tree/Grass) are now on their own FeatureMap.  This is a 24bit bmp specified with the -f &amp;lt;featuremapname.bmp&amp;gt; flag.&lt;br /&gt;
&#039;&#039;It should be 1/8th the resolution of your map.&#039;&#039; (i.e. 1 pixel smaller in each direction then your heightmap)&lt;br /&gt;
&lt;br /&gt;
Tree&#039;s and GeoVents are placed on the green layer.&lt;br /&gt;
*255 Places a GeoVent&lt;br /&gt;
*200-215 Places tree types 1-16&lt;br /&gt;
&lt;br /&gt;
MapConv will try to place these features in the exact spot you place them, it will then go into crackhead mode if it cannot.&lt;br /&gt;
&lt;br /&gt;
Grass is the blue layer.  The blue value  maps to a &#039;pseudo-density&#039; of the grass.  The &#039;grass&#039; map in the engine is very very low resolution,  so be aware that you will not get nice linear results.  255=full grass, 0=no grass.&lt;br /&gt;
&lt;br /&gt;
The red layer places &#039;Arbitrary Features,&#039; aka wreckages.  One pixel of red equals one feature.  Red &#039;1&#039; gives you a feature of the first arbitrary type, 2 the second, 3 the third, and so on.&lt;br /&gt;
&lt;br /&gt;
===But what are these &#039;Arbitrary Features,&#039; Im so confused!===&lt;br /&gt;
They are &#039;features&#039; found in the /features/All Worlds or /features/corpses filesystems.  Which feature is &#039;type 1&#039; is defined on a map-by-map basis via a new file called &#039;fs.txt&#039;.  This file should contain &amp;lt;cr&amp;gt; delimited feature names. The first line is the feature placed when a red=255 dot is found, etc.&lt;br /&gt;
&lt;br /&gt;
=== Ok, Now what do I do? ===&lt;br /&gt;
If you are using any custom features, and/or you want to mod-proof your map, you should include them in the sd7 that you package the map in.  The tree structure should look something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;mapname.sd7&amp;gt;&lt;br /&gt;
     -maps/&lt;br /&gt;
          -mapname.smf&lt;br /&gt;
          -mapname.smt&lt;br /&gt;
          -mapname.smd&lt;br /&gt;
     -Objects3d/&lt;br /&gt;
          -&amp;lt;featurename[s]&amp;gt;.3do(specified in the tdf)&lt;br /&gt;
     -features/&lt;br /&gt;
          -All Worlds/ &lt;br /&gt;
           (and/or) &lt;br /&gt;
          -Corpses/&lt;br /&gt;
               -&amp;lt;featurename[s]&amp;gt;.tdf&lt;br /&gt;
     -textures/&lt;br /&gt;
          -tatex/&lt;br /&gt;
               -&amp;lt;texname[s]&amp;gt;00.bmp or .tga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without getting into modding/unit making I will say that the &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; tells you the name of the &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; (&amp;quot;&amp;lt;code&amp;gt;Object=&amp;lt;/code&amp;gt;&amp;quot;), and the name of the &#039;feature&#039; is in the top brackets.  The &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; specifies the texture names.  The engine looks for those texture names + 00 in either bmp or tga format in tatex. &lt;br /&gt;
&lt;br /&gt;
Examples of a built-in XTA wreckage name would be &amp;lt;code&amp;gt;armckfus_dead&amp;lt;/code&amp;gt; which would be looking for a tdf (likely &amp;lt;code&amp;gt;armckfus_dead.tdf&amp;lt;/code&amp;gt;) that has a &amp;lt;code&amp;gt;[armckfus_dead]&amp;lt;/code&amp;gt; section which then specified something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;Object=armckfus_dead&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;armckfus_dead.3do&amp;lt;/code&amp;gt; would then specify some texture like &amp;lt;code&amp;gt;wreck01b&amp;lt;/code&amp;gt; which would go looking for either a &amp;lt;code&amp;gt;wreck01b00.bmp&amp;lt;c/ode&amp;gt; or &amp;lt;code&amp;gt;wreck01b00.tga&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
[http://fileuniverse.com/?p=showitem&amp;amp;ID=1421 Start with this version of MapConv]&lt;br /&gt;
or&lt;br /&gt;
[http://www.fileuniverse.com/?p=showitem&amp;amp;ID=1507 This one]&lt;br /&gt;
[I will clean this up and add more later --Mother]&lt;br /&gt;
&lt;br /&gt;
==Making your map work==&lt;br /&gt;
This is the final push. Once Sharp map has finshed it will spit out a .sm2 file. This needs to be copyed to the MAPS folder in Spring. But you still need one more thing: an .smd file. Basically, this file tells the game things like the maximum metal, the light colours, the clouds, etc. (All the bits you were thinking that you hadn&#039;t done yet!)&lt;br /&gt;
&lt;br /&gt;
I would suggest you copy the .smd of another map and fiddle with the settings until you get what you want. smd&#039;s can be opened in notepade or similar. Look at all the .smd&#039;s so you can get a jist of what each option does. Make sure both the .sm2 and .smd have the same file name then start up Spring (not the client!) in [http://taspring.clan-sy.com/wiki/FAQ#People_talk_about_.27Single_Player.27._How_do_I_start_a_single_player_game.3F single-player mode] and run the commanders script. Choose your map and away you go!&lt;br /&gt;
&lt;br /&gt;
==SMD Rundown==&lt;br /&gt;
What follows is all that we (aGorm and LathanStanley) have figured out in the SMD&#039;s. Its by no means the be all and end all, but it&#039;s the next best thing.&lt;br /&gt;
&lt;br /&gt;
* Goto [[Maps:SMD]] for a more detailed listing&lt;br /&gt;
 &lt;br /&gt;
===General Map Information===&lt;br /&gt;
* Description is just a short description of your map. Keep it simple.&lt;br /&gt;
* TidalStrength determines how much energy tidal generators will produce. A normal figure is around 20.&lt;br /&gt;
* Gravity, as you would expect, affects ballisitcs and how far units fly after an explosion.&lt;br /&gt;
* MaxMetal is the maximum amount of metal you will gain from one game square in 1 second from an area of metal that had a red value of 255 in your metal map. If making an old style metal deposit map, then this will be quite high: maybe 2 or 3. If you are making a new style metal-all-over-the-place-map, then it will be low: perhaps 0.2. Also for old style maps, you&#039;ll have to fiddle with the...&lt;br /&gt;
* ExtractorRadius, which is the area that is harvested by 1 metal extractor. For old style maps make this very small, so as they only take from one deposit.&lt;br /&gt;
&lt;br /&gt;
=== Atmosphere, Water Colours ===&lt;br /&gt;
Each value (it would appear this bit is by no means gospel) is a representation of the [[RGB]] values for that parameter. It would appear to be relative, i.e. you can put in what ever numbers you like and the game will work out what you want. &lt;br /&gt;
&lt;br /&gt;
The best way to go about it is to look at it as percentages.&lt;br /&gt;
The numbers 1, 0.5, 0.2 refer to 100% red, 50% green and 20% blue. But 2, 1, 0.4, will get the same result. Using numbers below one for all the numbers will result in the colour being less bright.&lt;br /&gt;
&lt;br /&gt;
This is all a bit confusing so an example will be given:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SkyColor=0.2 0.1 0.5;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the sky is coloured with 20% red, 10% green, and 50% blue, approximatly RGB(51,25,127), resulting in a very deep night-time blue. Other colours are added to the initial sky colour. If you set your sun as being a pale yellow and it came out rather green, this is why. &lt;br /&gt;
&lt;br /&gt;
One helpful tip is &#039;&#039;negative&#039;&#039; colour. That&#039;s right: you can type in a negative number for a colour and it will remove it from the base sky colour. Just be careful not to go below the original values or you may get a surprise.&lt;br /&gt;
&lt;br /&gt;
===The Sun System/Shadow System===&lt;br /&gt;
The Sun System/Shadow System is quite a useful tool as well in making your maps look &#039;&#039;well done&#039;&#039;.  &lt;br /&gt;
Within the &amp;lt;code&amp;gt;.smd&amp;lt;/code&amp;gt; file there is a line: &lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;SunDir=-1 1 -.5;	//direction of sun&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;(The part after the &amp;quot;//&amp;quot; is a comment)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The numbers &amp;quot;-1&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;.5&amp;quot; determine the angle and elevation of the sunlight system. &lt;br /&gt;
&lt;br /&gt;
The first number is the X angle (East/West) (from -1 to 1) where any negative number means the sun is on the West (and therefore shadows will be cast east), and any positive number means the sun is on the East (and therefore shadows will be cast west), and if the number is 0 there are no east or west shadows, the sun is directly above you. &lt;br /&gt;
&lt;br /&gt;
The second is its elevation, (0 to 1), this number is how far from the horizion the sun is, ignoring it&#039;s angle. Thus, 1 puts the sun directly overhead (while still casting angular shadows) and 0 putting it directly on the horizion. &lt;br /&gt;
&lt;br /&gt;
The final number is the Z angle (North/South). (I know, I know, they wrote the engine with Y as elevation and Z as vertical. Don&#039;t blame me.) It is just like the East West positioning, where negative numbers put them on the North, and positive numbers put them on the South. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example Usage:&#039;&#039;&#039; If you want the shadows &#039;&#039;in&#039;&#039; one of the boxes (your shadow casting surface is in the middle), use the numbers provided, or start from them and tweak the angle and sun height as seen fit.&lt;br /&gt;
&lt;br /&gt;
[[Image:ShadowDirection.gif]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; on the current build, it &#039;&#039;will&#039;&#039; cast the shadows in the proper direction, etc. Negative direction numbers tend to make some maps unstable and cause crashes. The best solution would be to rotate or flip your map to where the shadows point up or right (North or West). I do believe these bugs are being worked on and will be fixed soon.&lt;br /&gt;
&lt;br /&gt;
We can only hope this has been helpful! Any questions, or things you think we have missed, please ask us in the maps section.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>AlexMax</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18563</id>
		<title>Tutorial:CreateMaps(Fnordia et al)</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Tutorial:CreateMaps(Fnordia_et_al)&amp;diff=18563"/>
		<updated>2005-12-29T22:10:06Z</updated>

		<summary type="html">&lt;p&gt;AlexMax: /* The Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Original by aGorm, with help from LathanStanley&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- BEGIN COMMENT&lt;br /&gt;
&lt;br /&gt;
Where possible I (rjn945) have replaced HTML with wiki markup.&lt;br /&gt;
A quick guide to wiki markup is available at:&lt;br /&gt;
http://taspring.clan-sy.com/wiki/Help:Editing&lt;br /&gt;
In short: &lt;br /&gt;
   Use #&#039;s for numbered lists&lt;br /&gt;
   Use *&#039;s for unnumbered lists&lt;br /&gt;
   And replace &amp;lt;br&amp;gt;&#039;s with blank lines&lt;br /&gt;
&lt;br /&gt;
aGorm... Fair enough.. thanks for the clean up.&lt;br /&gt;
&lt;br /&gt;
END COMMENT --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The Idea==&lt;br /&gt;
First of all you need an idea. There is no point (OK, there is some point for test purposes) in making a map just like another one that already exists. You need to think of certain things before you make your map.&lt;br /&gt;
# Is this map idea different, not just a copy of someone else&#039;s?&lt;br /&gt;
# Does my map idea give each player a fair share of the cover and high ground?&lt;br /&gt;
# Is my map idea possible to make?&lt;br /&gt;
# Is it possible with the amount of time I&#039;m willing to spend?&lt;br /&gt;
&lt;br /&gt;
If you answered yes to the above, then you are 25% of the way towards making your map!&lt;br /&gt;
&lt;br /&gt;
You should probably doodle it on a piece of paper to act as a guide later.&lt;br /&gt;
&lt;br /&gt;
==The Tools==&lt;br /&gt;
With your idea hopefully sketched out, it&#039;s time to get the tools to make the map! (You can skip this if you already have them.)&lt;br /&gt;
&lt;br /&gt;
For all your map compiling needs you should first download the [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 newest MapConv program].&lt;br /&gt;
&lt;br /&gt;
You will also need some image editing software. Favorites are Photoshop, the [http://www.gimp.org/ GIMP], And Paintshop Pro.&lt;br /&gt;
The GIMP, however, is the only one that&#039;s free!&lt;br /&gt;
(I&#039;m going to have to assume you know how to use the program you choose. If you can&#039;t there are loads of tutorials on the net.)&lt;br /&gt;
&lt;br /&gt;
You may also want to check out [http://www.planetside.co.uk/terragen/ Terragen] for generating terrain. But as you have to pay to render anything of a good size, I won&#039;t mention it other than here.&lt;br /&gt;
&lt;br /&gt;
Another tool you might find useful is the freeware tool [http://www.delphigl.de/projects/terrtexgen/eng_index.html TerrTexGen].  It&#039;s useful for previewing your heightmap before compiling, but unless your texturemap is 4096 on both sides, you might find that the texturemaps that it creates are too small.&lt;br /&gt;
&lt;br /&gt;
==Preparing your map==&lt;br /&gt;
This is the fun part! And also, often, the longest part.&lt;br /&gt;
&lt;br /&gt;
For a map you will need several different things:&lt;br /&gt;
# a texture map&lt;br /&gt;
# a height map&lt;br /&gt;
# a metal map&lt;br /&gt;
&lt;br /&gt;
And several optional things for added functionality:&lt;br /&gt;
# a tile map&lt;br /&gt;
&lt;br /&gt;
They all have certain needs! Read this bit carfully!&lt;br /&gt;
&lt;br /&gt;
===Texture Map===&lt;br /&gt;
All maps are based on a texture image. This image&#039;s width and height must be an exact multiple of 1024 pixels. So, for instance, you can have a &amp;quot;4096 by 8192&amp;quot; image, but not a &amp;quot;4096 by 4608&amp;quot; image, as 4608 does not divide by 1024. It, like  all three maps, must be saved as a 24 bit BMP. A 1024x1024 Texture will produce a map shown as &#039;2x2&#039; in the launcher.&lt;br /&gt;
&lt;br /&gt;
It may look like whatever you want! Find a texture (preferably, one that you can tile seamlessly) and fill your texture map with it. You could, for instance, fill the whole image with a sand texture. This would make your whole world look like sand. You could then decide to add a few patches of grass to it by finding a suitable grass texture and adding it on in patches. So you&#039;d have a map that was mostly sand with a few patches of green.&lt;br /&gt;
&lt;br /&gt;
Because of the way the map compiler work, it will &#039;&#039;&#039;greatly&#039;&#039;&#039; reduce your map filesize if you use 32x32 tiles on your texture map. So, whenever you have to fill a large area with a repeating pattern, make sure the small square you&#039;re repeating is 32x32 (or a multiple of it).&lt;br /&gt;
&lt;br /&gt;
Hey, wtf, Tile Map and Texture Map are about the same stuff, someone merge those section!!&lt;br /&gt;
&lt;br /&gt;
===Height Map===&lt;br /&gt;
Next is the height map. This must be exactly one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel!&#039;&#039;&#039; For instance, if the dimensions of your texture map are &amp;quot;4096 by 8192&amp;quot;, divide 4096 and 8192 each by 8 and add one to the result of each. The result for this example would be &amp;quot;513 by 1025&amp;quot;. The height map is a black and white BMP. Only use black and white, no colour! (well its better to work it as a greyscale image, and when saving to process, convert to rgb and save as bmp, that way you get a 24 bit bmp)&lt;br /&gt;
&lt;br /&gt;
White areas are the tops of mountains; black areas are the sea floor or the bottom of valleys. The shades of grey between are the different heights between! When you draw your heightmap, make sure the white blends into the black with greys. I suggest you use the blur tool. If you have a white splodge in a patch of black you will have a very tall pillar that won&#039;t look natural at all!&lt;br /&gt;
&lt;br /&gt;
===Metal Map===&lt;br /&gt;
Finally, you need a metal map. This is the same size as the height map, one eighth (1/8) of the size of the texture map &#039;&#039;&#039;+ 1 pixel.&#039;&#039;&#039; On this one you paint down red (in verying degrees) to represent metal. So a red spot that is RGB(50,0,0) will provide about a 5th of the metal patch of red RGB(255,0,0) will give.&lt;br /&gt;
&lt;br /&gt;
On this map you can also place green pixels. Each green pixel will create 1 geothermal vent. If you put down a green splodge you will get a cluster of geo vents! Only place 1 pixel.&lt;br /&gt;
&lt;br /&gt;
Ensure you have all three saved as 24 bit BMPs and you&#039;re ready to convert it all to a map!&lt;br /&gt;
&lt;br /&gt;
===Tile Map===&lt;br /&gt;
Tiles are basically repeating images. They are exactly the same. The map compiler, by comparing peices to the texture to each other, sees which little square tiles in your texture are exactly alike. If they are the same, instead of wasting precious harddrive and bandwidth space, the compiler sets a reference from on tile to the next. If your map is made out of only one small tile, repeating for the whole texture, the map will compress extreemly well. Down to only a few kilobytes. But this would look very boring. So most map makers use a variety of tiles to make their map more interesting. A good map maker will find a balance between looks and size.&lt;br /&gt;
&lt;br /&gt;
To make a tile:&lt;br /&gt;
Open up your image editing program.&lt;br /&gt;
Create a new image.&lt;br /&gt;
As the Spring engine uses a 32 pixel tile engine, you have to set your image size to 32 pixels, or a multiple of 32 pixels. Therefore, tile sizes should be one of the following:&lt;br /&gt;
32x32 pixels,&lt;br /&gt;
64x64 pixels,&lt;br /&gt;
96x96 pixels,&lt;br /&gt;
128x128 pixels&lt;br /&gt;
etc.&lt;br /&gt;
Tiles also do not have to be square, it is perfectly possible to make rectangular tiles. Tiles should also be seamless, so that when repeated do not seem to have an obvious edge.&lt;br /&gt;
&lt;br /&gt;
Once you have created your tile, do a Fill operation with a texture. The texture of course is our tile that we have made in the previous step. If you do not know how to do this, ask around. Make sure to state which image editing software you use, so we can help you easier.&lt;br /&gt;
&lt;br /&gt;
Now, once you have your basic tile down, add in different features on your map, such as mountains, rivers, seas, deserts, grasslands, or whatever your map has. Remeber, for smaler file sizes make these different features out of tiles as well. If you do all of this properly, you can get your file size down very small, and this will keep everyone happy.&lt;br /&gt;
&lt;br /&gt;
== MapConv.exe ==&lt;br /&gt;
&lt;br /&gt;
Instructions pulled from [http://fileuniverse.com/?p=showitem&amp;amp;ID=1234 the newest MapConv program]. If all goes well, the &amp;lt;code&amp;gt;MapConv.exe&amp;lt;/code&amp;gt; should create four new files: &amp;lt;code&amp;gt;mini.bmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mini.dds&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;yourmapname.smf&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;yourmapname.smt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USAGE: &lt;br /&gt;
&lt;br /&gt;
   mapconv  [-l] [-i] [-c &amp;lt;compression&amp;gt;] -x &amp;lt;max height&amp;gt; -n &amp;lt;min height&amp;gt; [-o &lt;br /&gt;
   &amp;lt;Output file&amp;gt;] [-e &amp;lt;tile file&amp;gt;] [-y &amp;lt;Typemap file&amp;gt;] -m &amp;lt;Metalmap file&amp;gt; -a &lt;br /&gt;
   &amp;lt;Heightmap file&amp;gt; -t &amp;lt;Texture file&amp;gt; [--] [-v] [-h]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
&lt;br /&gt;
   -l,  --lowpass&lt;br /&gt;
     Lowpass filters the heightmap&lt;br /&gt;
&lt;br /&gt;
   -i,  --invert&lt;br /&gt;
     Inverts the height map vertically (not the height values but the height map &lt;br /&gt;
     (uhm someone rewrite this))&lt;br /&gt;
&lt;br /&gt;
   -c &amp;lt;compression&amp;gt;,  --compress &amp;lt;compression&amp;gt;&lt;br /&gt;
     (value required)  How much we should try to compress the texture file. &lt;br /&gt;
     Default value 0.8 . (lower=higher quality, larger file)&lt;br /&gt;
&lt;br /&gt;
   -x &amp;lt;max height&amp;gt;,  --maxheight &amp;lt;max height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the max(0xffff) level &lt;br /&gt;
     of the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -n &amp;lt;min height&amp;gt;,  --minheight &amp;lt;min height&amp;gt;&lt;br /&gt;
     (required)  (value required)  What altitude in spring the min(0) level of &lt;br /&gt;
     the height map should represent&lt;br /&gt;
&lt;br /&gt;
   -o &amp;lt;Output file&amp;gt;,  --outfile &amp;lt;Output file&amp;gt;&lt;br /&gt;
     (value required)  The name of the created map&lt;br /&gt;
&lt;br /&gt;
   -e &amp;lt;tile file&amp;gt;,  --externaltilefile &amp;lt;tile file&amp;gt;&lt;br /&gt;
     (value required)  External tile file that will be used for finding tiles, &lt;br /&gt;
     tiles not found in this will be added in a new tile file&lt;br /&gt;
&lt;br /&gt;
   -y &amp;lt;Typemap file&amp;gt;,  --typemap &amp;lt;Typemap file&amp;gt;&lt;br /&gt;
     (value required)  Type map to use, uses the red channel to decide type, &lt;br /&gt;
     types are defined in the .smd, if this argument is skipped the map will be &lt;br /&gt;
     all type 0&lt;br /&gt;
&lt;br /&gt;
   -m &amp;lt;Metalmap file&amp;gt;,  --metalmap &amp;lt;Metalmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Metal map to use, red channel is amount of &lt;br /&gt;
     metal, green=255 is where to place geos (one pixel=one geo). Is resized to &lt;br /&gt;
     fit the mapsize&lt;br /&gt;
&lt;br /&gt;
   -a &amp;lt;Heightmap file&amp;gt;,  --heightmap &amp;lt;Heightmap file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input heightmap to use for the map, this &lt;br /&gt;
     should be in 16 bit raw format (.raw extension) or an image file. Must be &lt;br /&gt;
     xsize*128+1 x ysize*128+1 in size.&lt;br /&gt;
&lt;br /&gt;
   -t &amp;lt;Texture file&amp;gt;,  --intex &amp;lt;Texture file&amp;gt;&lt;br /&gt;
     (required)  (value required)  Input bitmap to use for the map. Must be &lt;br /&gt;
     xsize*1024 x ysize*1024 in size. (xsize,ysize integers determined from this &lt;br /&gt;
     file)&lt;br /&gt;
&lt;br /&gt;
   --,  --ignore_rest&lt;br /&gt;
     Ignores the rest of the labeled arguments following this flag.&lt;br /&gt;
&lt;br /&gt;
   -v,  --version&lt;br /&gt;
     Displays version information and exits.&lt;br /&gt;
&lt;br /&gt;
   -h,  --help&lt;br /&gt;
     Displays usage information and exits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Convers a series of bmp/raw files to a spring map. This just creates the .smf &lt;br /&gt;
   file, you will also have to create a .smd file using a text editor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mothers MapConv==&lt;br /&gt;
The usage is the same as above, with the following exceptions:&lt;br /&gt;
All features (including GeoVent/Tree/Grass) are now on their own FeatureMap.  This is a 24bit bmp specified with the -f &amp;lt;featuremapname.bmp&amp;gt; flag.&lt;br /&gt;
&#039;&#039;It should be 1/8th the resolution of your map.&#039;&#039; (i.e. 1 pixel smaller in each direction then your heightmap)&lt;br /&gt;
&lt;br /&gt;
Tree&#039;s and GeoVents are placed on the green layer.&lt;br /&gt;
*255 Places a GeoVent&lt;br /&gt;
*200-215 Places tree types 1-16&lt;br /&gt;
&lt;br /&gt;
MapConv will try to place these features in the exact spot you place them, it will then go into crackhead mode if it cannot.&lt;br /&gt;
&lt;br /&gt;
Grass is the blue layer.  The blue value  maps to a &#039;pseudo-density&#039; of the grass.  The &#039;grass&#039; map in the engine is very very low resolution,  so be aware that you will not get nice linear results.  255=full grass, 0=no grass.&lt;br /&gt;
&lt;br /&gt;
The red layer places &#039;Arbitrary Features,&#039; aka wreckages.  One pixel of red equals one feature.  Red &#039;1&#039; gives you a feature of the first arbitrary type, 2 the second, 3 the third, and so on.&lt;br /&gt;
&lt;br /&gt;
===But what are these &#039;Arbitrary Features,&#039; Im so confused!===&lt;br /&gt;
They are &#039;features&#039; found in the /features/All Worlds or /features/corpses filesystems.  Which feature is &#039;type 1&#039; is defined on a map-by-map basis via a new file called &#039;fs.txt&#039;.  This file should contain &amp;lt;cr&amp;gt; delimited feature names. The first line is the feature placed when a red=255 dot is found, etc.&lt;br /&gt;
&lt;br /&gt;
=== Ok, Now what do I do? ===&lt;br /&gt;
If you are using any custom features, and/or you want to mod-proof your map, you should include them in the sd7 that you package the map in.  The tree structure should look something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;mapname.sd7&amp;gt;&lt;br /&gt;
     -maps/&lt;br /&gt;
          -mapname.smf&lt;br /&gt;
          -mapname.smt&lt;br /&gt;
          -mapname.smd&lt;br /&gt;
     -Objects3d/&lt;br /&gt;
          -&amp;lt;featurename[s]&amp;gt;.3do(specified in the tdf)&lt;br /&gt;
     -features/&lt;br /&gt;
          -All Worlds/ &lt;br /&gt;
           (and/or) &lt;br /&gt;
          -Corpses/&lt;br /&gt;
               -&amp;lt;featurename[s]&amp;gt;.tdf&lt;br /&gt;
     -textures/&lt;br /&gt;
          -tatex/&lt;br /&gt;
               -&amp;lt;texname[s]&amp;gt;00.bmp or .tga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without getting into modding/unit making I will say that the &amp;lt;code&amp;gt;.tdf&amp;lt;/code&amp;gt; tells you the name of the &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; (&amp;quot;&amp;lt;code&amp;gt;Object=&amp;lt;/code&amp;gt;&amp;quot;), and the name of the &#039;feature&#039; is in the top brackets.  The &amp;lt;code&amp;gt;.3do&amp;lt;/code&amp;gt; specifies the texture names.  The engine looks for those texture names + 00 in either bmp or tga format in tatex. &lt;br /&gt;
&lt;br /&gt;
Examples of a built-in XTA wreckage name would be &amp;lt;code&amp;gt;armckfus_dead&amp;lt;/code&amp;gt; which would be looking for a tdf (likely &amp;lt;code&amp;gt;armckfus_dead.tdf&amp;lt;/code&amp;gt;) that has a &amp;lt;code&amp;gt;[armckfus_dead]&amp;lt;/code&amp;gt; section which then specified something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;Object=armckfus_dead&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;armckfus_dead.3do&amp;lt;/code&amp;gt; would then specify some texture like &amp;lt;code&amp;gt;wreck01b&amp;lt;/code&amp;gt; which would go looking for either a &amp;lt;code&amp;gt;wreck01b00.bmp&amp;lt;c/ode&amp;gt; or &amp;lt;code&amp;gt;wreck01b00.tga&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
[http://fileuniverse.com/?p=showitem&amp;amp;ID=1421 Start with this version of MapConv]&lt;br /&gt;
or&lt;br /&gt;
[http://www.fileuniverse.com/?p=showitem&amp;amp;ID=1507 This one]&lt;br /&gt;
[I will clean this up and add more later --Mother]&lt;br /&gt;
&lt;br /&gt;
==Making your map work==&lt;br /&gt;
This is the final push. Once Sharp map has finshed it will spit out a .sm2 file. This needs to be copyed to the MAPS folder in Spring. But you still need one more thing: an .smd file. Basically, this file tells the game things like the maximum metal, the light colours, the clouds, etc. (All the bits you were thinking that you hadn&#039;t done yet!)&lt;br /&gt;
&lt;br /&gt;
I would suggest you copy the .smd of another map and fiddle with the settings until you get what you want. smd&#039;s can be opened in notepade or similar. Look at all the .smd&#039;s so you can get a jist of what each option does. Make sure both the .sm2 and .smd have the same file name then start up Spring (not the client!) in [http://taspring.clan-sy.com/wiki/FAQ#People_talk_about_.27Single_Player.27._How_do_I_start_a_single_player_game.3F single-player mode] and run the commanders script. Choose your map and away you go!&lt;br /&gt;
&lt;br /&gt;
==SMD Rundown==&lt;br /&gt;
What follows is all that we (aGorm and LathanStanley) have figured out in the SMD&#039;s. Its by no means the be all and end all, but it&#039;s the next best thing.&lt;br /&gt;
&lt;br /&gt;
* Goto [[Maps:SMD]] for a more detailed listing&lt;br /&gt;
 &lt;br /&gt;
===General Map Information===&lt;br /&gt;
* Description is just a short description of your map. Keep it simple.&lt;br /&gt;
* TidalStrength determines how much energy tidal generators will produce. A normal figure is around 20.&lt;br /&gt;
* Gravity, as you would expect, affects ballisitcs and how far units fly after an explosion.&lt;br /&gt;
* MaxMetal is the maximum amount of metal you will gain from one game square in 1 second from an area of metal that had a red value of 255 in your metal map. If making an old style metal deposit map, then this will be quite high: maybe 2 or 3. If you are making a new style metal-all-over-the-place-map, then it will be low: perhaps 0.2. Also for old style maps, you&#039;ll have to fiddle with the...&lt;br /&gt;
* ExtractorRadius, which is the area that is harvested by 1 metal extractor. For old style maps make this very small, so as they only take from one deposit.&lt;br /&gt;
&lt;br /&gt;
=== Atmosphere, Water Colours ===&lt;br /&gt;
Each value (it would appear this bit is by no means gospel) is a representation of the [[RGB]] values for that parameter. It would appear to be relative, i.e. you can put in what ever numbers you like and the game will work out what you want. &lt;br /&gt;
&lt;br /&gt;
The best way to go about it is to look at it as percentages.&lt;br /&gt;
The numbers 1, 0.5, 0.2 refer to 100% red, 50% green and 20% blue. But 2, 1, 0.4, will get the same result. Using numbers below one for all the numbers will result in the colour being less bright.&lt;br /&gt;
&lt;br /&gt;
This is all a bit confusing so an example will be given:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SkyColor=0.2 0.1 0.5;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example the sky is coloured with 20% red, 10% green, and 50% blue, approximatly RGB(51,25,127), resulting in a very deep night-time blue. Other colours are added to the initial sky colour. If you set your sun as being a pale yellow and it came out rather green, this is why. &lt;br /&gt;
&lt;br /&gt;
One helpful tip is &#039;&#039;negative&#039;&#039; colour. That&#039;s right: you can type in a negative number for a colour and it will remove it from the base sky colour. Just be careful not to go below the original values or you may get a surprise.&lt;br /&gt;
&lt;br /&gt;
===The Sun System/Shadow System===&lt;br /&gt;
The Sun System/Shadow System is quite a useful tool as well in making your maps look &#039;&#039;well done&#039;&#039;.  &lt;br /&gt;
Within the &amp;lt;code&amp;gt;.smd&amp;lt;/code&amp;gt; file there is a line: &lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;SunDir=-1 1 -.5;	//direction of sun&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;(The part after the &amp;quot;//&amp;quot; is a comment)&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The numbers &amp;quot;-1&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;.5&amp;quot; determine the angle and elevation of the sunlight system. &lt;br /&gt;
&lt;br /&gt;
The first number is the X angle (East/West) (from -1 to 1) where any negative number means the sun is on the West (and therefore shadows will be cast east), and any positive number means the sun is on the East (and therefore shadows will be cast west), and if the number is 0 there are no east or west shadows, the sun is directly above you. &lt;br /&gt;
&lt;br /&gt;
The second is its elevation, (0 to 1), this number is how far from the horizion the sun is, ignoring it&#039;s angle. Thus, 1 puts the sun directly overhead (while still casting angular shadows) and 0 putting it directly on the horizion. &lt;br /&gt;
&lt;br /&gt;
The final number is the Z angle (North/South). (I know, I know, they wrote the engine with Y as elevation and Z as vertical. Don&#039;t blame me.) It is just like the East West positioning, where negative numbers put them on the North, and positive numbers put them on the South. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example Usage:&#039;&#039;&#039; If you want the shadows &#039;&#039;in&#039;&#039; one of the boxes (your shadow casting surface is in the middle), use the numbers provided, or start from them and tweak the angle and sun height as seen fit.&lt;br /&gt;
&lt;br /&gt;
[[Image:ShadowDirection.gif]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; on the current build, it &#039;&#039;will&#039;&#039; cast the shadows in the proper direction, etc. Negative direction numbers tend to make some maps unstable and cause crashes. The best solution would be to rotate or flip your map to where the shadows point up or right (North or West). I do believe these bugs are being worked on and will be fixed soon.&lt;br /&gt;
&lt;br /&gt;
We can only hope this has been helpful! Any questions, or things you think we have missed, please ask us in the maps section.&lt;br /&gt;
&lt;br /&gt;
[[Category:Maps]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>AlexMax</name></author>
	</entry>
</feed>