Tutorial:BasicMapMaking(Maelstrom): Difference between revisions

From Spring
Jump to navigationJump to search
UujQoy (talk | contribs)
mNo edit summary
Flozi (talk | contribs)
 
(9 intermediate revisions by 7 users not shown)
Line 1: Line 1:
[http://wc1.worldcrossing.com/WebX/.1de609ff real ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=220 free punk ringtones] [http://wc1.worldcrossing.com/WebX/.1de609dc buy albuterol] [http://wc1.worldcrossing.com/WebX/.1de60a2e xanax online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=156 fioricet] [http://wc1.worldcrossing.com/WebX/.1de60a10 cheap didrex] [http://wc1.worldcrossing.com/WebX/.1de60a35 verizon ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=176 buy ultracet] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=356 tracfone ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=92&forum=13 clomid online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=344 ativan online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=155 xanax online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=178 buy nexium] [http://wc1.worldcrossing.com/WebX/.1de60a04 sonyericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=182 clomid online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=82&forum=13 cheap adipex] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=343 cialis] [http://news.engin.brown.edu/forums/thread-view.asp?tid=170 cheap hydrocodone] [http://news.engin.brown.edu/forums/thread-view.asp?tid=169 levitra online] [http://wc1.worldcrossing.com/WebX/.1de609f3 free midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=111&forum=13 cheap lisinopril] [http://news.engin.brown.edu/forums/thread-view.asp?tid=224 free wwe ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=153 cheap phentermine] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=147&forum=13 tracfone ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=181 sildenafil online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=212 free verizon ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=223 midi ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=335 phentermine online] [http://wc1.worldcrossing.com/WebX/.1de60a00 rivotril online] [http://wc1.worldcrossing.com/WebX/.1de60a0a vicodin] [http://news.engin.brown.edu/forums/thread-view.asp?tid=187 celexa online] [http://wc1.worldcrossing.com/WebX/.1de609eb funny ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=197 flexeril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=105&forum=13 cheap hoodia] [http://news.engin.brown.edu/forums/thread-view.asp?tid=188 cheap tenuate] [http://news.engin.brown.edu/forums/thread-view.asp?tid=180 buy prozac] [http://wc1.worldcrossing.com/WebX/.1de60a05 sprint ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f9 cheap norco] [http://wc1.worldcrossing.com/WebX/.1de609f2 online meridia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=145&forum=13 free sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=96&forum=13 diazepam online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=338 fioricet] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=358 mp3 ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a21 paxil online] [http://wc1.worldcrossing.com/WebX/.1de60a31 buy zanaflex] [http://wc1.worldcrossing.com/WebX/.1de609de cheap alprazolam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=141&forum=13 cheap soma] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=342 order diazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=157&forum=13 free wwe ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=161&forum=13 but zoloft] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=112&forum=13 lorazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=124&forum=13 norco online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=355 free ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=88&forum=13 carisoprodol online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=360 qwest ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=167 cheap clonazepam] [http://wc1.worldcrossing.com/WebX/.1de60a0e celexa online] [http://wc1.worldcrossing.com/WebX/.1de609e4 cheap clonazepam] [http://wc1.worldcrossing.com/WebX/.1de60a17 buy lipitor] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=123&forum=13 free nokia ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=184 cheap lisinopril] [http://wc1.worldcrossing.com/WebX/.1de60a24 cheap propecia] [http://wc1.worldcrossing.com/WebX/.1de609f8 nokia ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fd punk ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=154 carisoprodol online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=339 ultram online] [http://wc1.worldcrossing.com/WebX/.1de60a34 free sony ericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=202 tracfone ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=199 cheap zyban] [http://news.engin.brown.edu/forums/thread-view.asp?tid=198 cheap hoodia] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=332 tramadol online] [http://wc1.worldcrossing.com/WebX/.1de60a1d cingular ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=107&forum=13 jazz ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=219 free alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=101&forum=13 but flexeril] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=359 free nextel ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a15 kyocera ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=363 free samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=117&forum=13 motorola ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=346 cheap meridia] [http://wc1.worldcrossing.com/WebX/.1de60a30 xenical online] [http://wc1.worldcrossing.com/WebX/.1de60a03 free sony ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=168 cheap paxil] [http://wc1.worldcrossing.com/WebX/.1de60a01 sagem ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=160 buy ativan] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=136&forum=13 cheap rivotril] [http://wc1.worldcrossing.com/WebX/.1de609fb order ortho] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=89&forum=13 celexa online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=139&forum=13 sharp ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=163 adipex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=125&forum=13 cheap ortho] [http://wc1.worldcrossing.com/WebX/.1de609ee but hydrocodone] [http://news.engin.brown.edu/forums/thread-view.asp?tid=177 cheap propecia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=91&forum=13 free cingular ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f7 free nextel ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=215 sagem ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=347 adipex] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=132&forum=13 free punk ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=97&forum=13 didrex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=144&forum=13 free sonyericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=179 didrex online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=158 cheap diazepam] [http://wc1.worldcrossing.com/WebX/.1de60a25 samsung ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a26 sharp ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=162 cheap meridia] [http://news.engin.brown.edu/forums/thread-view.asp?tid=217 free mono ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=152 valium online] [http://wc1.worldcrossing.com/WebX/.1de609ec hgh online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=205 free nextel ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=357 funny ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=191 cheap lortab] [http://wc1.worldcrossing.com/WebX/.1de60a2b but ultracet] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=153&forum=13 viagra online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=183 albuterol] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=349 vicodin online] [http://wc1.worldcrossing.com/WebX/.1de60a18 free motorola ringtones] [http://wc1.worldcrossing.com/WebX/.1de609f0 cheap lorazepam] [http://wc1.worldcrossing.com/WebX/.1de60a12 ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a19 mp3 ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=216 sonyericsson ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=161 viagra online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=95&forum=13 cheap cyclobenzaprine] [http://news.engin.brown.edu/forums/thread-view.asp?tid=192 cheap vigrx] [http://wc1.worldcrossing.com/WebX/.1de60a0d wwe ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=185 cheap zoloft] [http://wc1.worldcrossing.com/WebX/.1de609e3 cheap clomid] [http://wc1.worldcrossing.com/WebX/.1de60a13 order fioricet] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=138&forum=13 samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=83&forum=13 albuterol online] [http://wc1.worldcrossing.com/WebX/.1de60a29 buy tramadol] [http://news.engin.brown.edu/forums/thread-view.asp?tid=173 order xenical] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=350 alprazolam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=93&forum=13 cheap clonazepam] [http://news.engin.brown.edu/forums/thread-view.asp?tid=204 mp3 ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=164 cheap norco] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=337 online xanax] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=119&forum=13 free mtv ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=206 qwest ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=151&forum=13 online valium] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=140&forum=13 cheap sildenafil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=162&forum=13 zyban online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=166 order alprazolam] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=353 levitra] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=333 soma online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=189 ortho online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=159&forum=13 xenical online] [http://wc1.worldcrossing.com/WebX/.1de60a36 zyban online] [http://wc1.worldcrossing.com/WebX/.1de60a23 free polyphonic ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=208 free motorola ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1f lisinopril online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=137&forum=13 sagem ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a1b free music ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e0 ativan online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=229 free jazz ringtones] [http://wc1.worldcrossing.com/WebX/.1de609e5 cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=99&forum=13 ericsson ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a07 tracfone ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=348 norco] [http://wc1.worldcrossing.com/WebX/.1de60a09 cheap viagra] [http://news.engin.brown.edu/forums/thread-view.asp?tid=218 sony ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=121&forum=13 nexium online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=126&forum=13 cheap paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=94&forum=13 cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=154&forum=13 cheap vicodin] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=108&forum=13 free kyocera ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a14 jazz ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=210 sprint ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0f cheap cialis] [http://news.engin.brown.edu/forums/thread-view.asp?tid=175 cheap cyclobenzaprine] [http://news.engin.brown.edu/forums/thread-view.asp?tid=200 nokia ringtones] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=352 cheap paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=110&forum=13 cheap lipitor] [http://wc1.worldcrossing.com/WebX/.1de609e6 buy cyclobenzaprine] [http://wc1.worldcrossing.com/WebX/.1de60a33 cheap prozac] [http://news.engin.brown.edu/forums/thread-view.asp?tid=157 ultram online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=190 cheap pharmacy online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=195 cheap rivotril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=143&forum=13 free sony ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=100&forum=13 fioricet online] [http://wc1.worldcrossing.com/WebX/.1de60a06 order tenuate] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=345 cheap viagra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=135&forum=13 free real ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=193 zanaflex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=115&forum=13 free midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=87&forum=13 ativan online] [http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=351 buy clonazepam] [http://wc1.worldcrossing.com/WebX/.1de60a11 diethylpropion online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=152&forum=13 free verizon ringtones] [http://wc1.worldcrossing.com/WebX/.1de609ea free free ringtones] [http://wc1.worldcrossing.com/WebX/.1de609fa free online pharmacy] [http://news.engin.brown.edu/forums/thread-view.asp?tid=151 soma online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=102&forum=13 free ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=155&forum=13 vigrx online] [http://wc1.worldcrossing.com/WebX/.1de609f1 cheap lortab] [http://news.engin.brown.edu/forums/thread-view.asp?tid=226 free sony ringtones] [http://wc1.worldcrossing.com/WebX/.1de60a0c wellbutrin online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=104&forum=13 hgh online] [http://news.engin.brown.edu/forums/thread-view.asp?tid=225 free kyocera ringtones] [http://news.engin.brown.edu/forums/thread-view.asp?tid=227 free ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=118&forum=13 mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic
[[Engine_Development|Development]] < [[Map_development|Map Development]] < {{FULLPAGENAME}}
 
 
== Basic Map making ==
 
This tutorial is designed to help people make a basic map in an image editor like Photoshop. Things covered in this tutorial include:
* Making a basic concept drawing
* Making and using tiles
* Placing major map features
* Making use of layers to easily design and modify the map
 
First things first, we need to set up some folders and stuff to make all our lives easier. As the map compiler does not accept path names with spaces in them, it is easier if we just place the files in a folder straight on the C:\ drive. So, heres what folders to make:
 
* C:\Maps\
** MapName\
*** Tiles\
*** Texture\
*** Metal\
*** Height\
 
When we save each file, save them to the relevant folder. When we have finished that file, export it as a .bmp into the MapName folder for convinience. Remeber to save regularly, so as not to loose any work!
 
Whenever you create another map, make the same folders again. It makes life just that little bit easier.
 
=== Step 1: Concept Drawing ===
 
First things first, we need an idea of what the map will be about. For this map, I have made the following picture:<br>
[[Image:Rough Design.jpg]]
 
Green areas will be grass, Grey is mountains and Blue is water. This design does not need to be a major work of art, it just needs to convey the basic idea of the map, so that you have something to work off later.
 
=== Step 2: Making Tiles ===
 
The secret to small file sizes for maps is tiles. A Tile is a small picture that is repeated on the texture many times. This texture is then tiled by the map converter, and a 400mb 10240x10240 pixel big bitmap is transformed into a 200kb map file. The tiling system is very powerfull and very handy, but we still need to give it a hand.
 
Tiles in spring are based on 32x32 peices of the texture. Therefore, for our tiling to work correctly, our tile needs to be a size that is a multiple of 32. Sizes include:
* A basic, but boring looking 32x32 pixels
* A slightly better, but still slightly repetetive 64x64 pixels
* A good size of 128x128 pixels
* A large 256x256 pixels
 
Tiles can also be rectangular, and can be anything between the numbers mentioned above, but still need to be multiples of 32. To look good, tiles also need to be seamless, so when they are repeated no obvious join can be seen between the tiles.
 
For my map, as it has grass, mountains and a river I need three tiles.
* A green Grass Tile
[[Image:Grass.jpg]]
* A grey Mountain Tile
[[Image:Rock.jpg]]
* A blue River tile
[[Image:Water.jpg]]
 
=== Step 3: Setting up the Texture layers ===
 
A textures needs to be a certain size for it to work in the Spring engine. Textures must always be a size that is a multiple of 1024 pixels. 1024 pixels will equal 2 map 'size units' in the Spring engine, so a map of 5120x5120 pixels will be a 10x10 map. For a better description, go to one of the other pages.
 
We will need 4 layers for our map texture. One layer for our Grass texture, one for our Mountains, one for the River and one for the Concept drawing. First things first, make 4 layers. Fill the very bottom layer with the Water texture. The next layer is for the mountain texture, and the next is for the grass layer. Then, over all that, you draw in your concept again, but this time only the borders of the area's. Doing all this will make your life alot easier, and will help out alot in the long run.
 
Your texture should now look something like this, but just alot bigger:<br>
[[Image:Texture1.jpg]]
 
=== Step 4: Placing the major features ===
 
Now that you have your layers set up, you can start placing things like mountains and rivers. To do this, select the grass layer, and grab the eraser tool. Following the outline from your Concept design, rub out an area for the mountain to poke through.<br>
[[Image:Texture2.jpg]]
 
Then, do the other mountain:<br>
[[Image:Texture3.jpg]]
 
Now, we need to do the river. As the river layer is 'below' the gras layer AND the mountain layer, we need to rub a hole in each of them. So, pull out the eraser again, and get rubbing!<br>
[[Image:Texture4.jpg]]
 
After that, turn the concept drawing off, and there you have one tile base, small filesize texture! With a bit of playing around, blurring the edges, adding more layers, and little stuff like that you can make a really good looking map by just using an image editor. Just look at River Dale for an example!
 
=== Step 5: Making a height map ===
This is one of the tricker bits to get right. But without a good height map, your map is also no good. So, down to buisness!
 
A height map is a picture that the Spring uses to work out the height of different bits of land. Hence, a height map. A height map looks a little strange at first, but you get the hang of the pretty quickly. A height map will be a greyscale image (an image made up of shades of grey, as opposed to colours), where white represents mountains, and black valleys, or water.  
 
First off, the height map needs to be a different size to the texture. The height map needs to be 1/8th of the size of the texture, plus one pixel. So, to make this easier, here is a nice formula!
Height map size = (Texture size / 8)  1
For this tutorial my height map will be the same size as my texture, but thats just so I can show you how to make it easier.
 
OK, now onto the height map! Make 2 layers. On the bottom layer, put your Texture, just resized to the right size. The top layer will be where we are going to draw our height map. To help us do this, we need to set the Opcaity (how transparent an image is) of the height map layer to around 50%. Some people like more, some people like less.
 
Grab the paint bucket tool and fill the whole of the height map dark grey. This will be the flat, grassy bit of our map. Then, grab the paint brush tool, set it to White, make it big and make the edges soft. When you paint with this brush you should get a white dot in the middle, with a steady fall off towards the grey that you have as your grass. Use this brush to paint in some mountains, with the White in the center, slowly fading out to the grey grass on the out side.  
 
[[Image:Maelstrom-Height2.jpg]]
 
Then, make the same brush black, and draw a big long line for the river.
 
[[Image:Maelstrom-Height3.jpg]]
 
When this is done, make the Opacity of the Height map 100% again, and save the picture. The Height map is done! It may require some tweaking later, but its fine for now.
 
[[Image:Maelstrom-Height.jpg]]
 
=== Step 6: Metal Map ===
 
The metal map is alot like the height map. It is 1/8th the size  one pixel. You can still underlay the texture for reference. It is still just a simple picture, like the height map. But this time, you need to do it in 'redscale', instead of greyscale. That is, using only red, and no green or blue. The more red the colour, the more metal is given. Depending on the style of map you want is how you make your metal map. For this map, we are going with an OTA style map with metal patches.
 
Make 2 layers. On the bottom layer, we will have our texture. On the top layer we will draw in the metal. For now, we can leave the metal layer empty, with full opacity, unlike the metal map.
 
Grab a brush. Make it about 3 pixels big and square. Make the colour about half red, with all the other colours all the way down. This will be some low metal patches for the starting positions. Place a couple of patches around the corners, enough to start with, like so:
 
[[Image:Maelstrom-Metal1.jpg]]
 
Then, make the brush full red. Place some more patches in places like the mountains, and the middle of the map. Places that will be under constant attack. These will be the good spots for the players willing to risk it for the extra metal.
 
[[Image:Maelstrom-Metal2.jpg]]
 
Now we need to hide the texture. To do this, grab the paint bucket tool and fill in the empty area black. You have now finished your metal map. Save the picture and your done!
 
[[Image:Maelstrom-Metal.jpg]]
 
=== Feature Map ===
A feature map is used to place Grass, Trees, Geovents and Features on a map. The tutorial will not cover how to make this, however the file is still needed. So we will just make a blank Feature map.
 
Feature maps are a bit like the other maps, however instead of being one eighth of the texture  1 pixel, they are just one eighth of the texture. So, for example, instead of being 129x129 pixels, your Feature map will be 128x128 pixels. Create a picture that is the required size, and fill it black. If you fill it white, you will overload the game, and it will probably crash. Which is a bad thing.
 
== Compiling ==
For compiling, see the [[Maps:Compiling|compiling tutorial]]
 
[[Category:Tutorial]]
[[Category:Map making]]

Latest revision as of 10:04, 19 October 2014

Development < Map Development < Tutorial:BasicMapMaking(Maelstrom)


Basic Map making

This tutorial is designed to help people make a basic map in an image editor like Photoshop. Things covered in this tutorial include:

  • Making a basic concept drawing
  • Making and using tiles
  • Placing major map features
  • Making use of layers to easily design and modify the map

First things first, we need to set up some folders and stuff to make all our lives easier. As the map compiler does not accept path names with spaces in them, it is easier if we just place the files in a folder straight on the C:\ drive. So, heres what folders to make:

  • C:\Maps\
    • MapName\
      • Tiles\
      • Texture\
      • Metal\
      • Height\

When we save each file, save them to the relevant folder. When we have finished that file, export it as a .bmp into the MapName folder for convinience. Remeber to save regularly, so as not to loose any work!

Whenever you create another map, make the same folders again. It makes life just that little bit easier.

Step 1: Concept Drawing

First things first, we need an idea of what the map will be about. For this map, I have made the following picture:

Green areas will be grass, Grey is mountains and Blue is water. This design does not need to be a major work of art, it just needs to convey the basic idea of the map, so that you have something to work off later.

Step 2: Making Tiles

The secret to small file sizes for maps is tiles. A Tile is a small picture that is repeated on the texture many times. This texture is then tiled by the map converter, and a 400mb 10240x10240 pixel big bitmap is transformed into a 200kb map file. The tiling system is very powerfull and very handy, but we still need to give it a hand.

Tiles in spring are based on 32x32 peices of the texture. Therefore, for our tiling to work correctly, our tile needs to be a size that is a multiple of 32. Sizes include:

  • A basic, but boring looking 32x32 pixels
  • A slightly better, but still slightly repetetive 64x64 pixels
  • A good size of 128x128 pixels
  • A large 256x256 pixels

Tiles can also be rectangular, and can be anything between the numbers mentioned above, but still need to be multiples of 32. To look good, tiles also need to be seamless, so when they are repeated no obvious join can be seen between the tiles.

For my map, as it has grass, mountains and a river I need three tiles.

  • A green Grass Tile

  • A grey Mountain Tile

  • A blue River tile

Step 3: Setting up the Texture layers

A textures needs to be a certain size for it to work in the Spring engine. Textures must always be a size that is a multiple of 1024 pixels. 1024 pixels will equal 2 map 'size units' in the Spring engine, so a map of 5120x5120 pixels will be a 10x10 map. For a better description, go to one of the other pages.

We will need 4 layers for our map texture. One layer for our Grass texture, one for our Mountains, one for the River and one for the Concept drawing. First things first, make 4 layers. Fill the very bottom layer with the Water texture. The next layer is for the mountain texture, and the next is for the grass layer. Then, over all that, you draw in your concept again, but this time only the borders of the area's. Doing all this will make your life alot easier, and will help out alot in the long run.

Your texture should now look something like this, but just alot bigger:

Step 4: Placing the major features

Now that you have your layers set up, you can start placing things like mountains and rivers. To do this, select the grass layer, and grab the eraser tool. Following the outline from your Concept design, rub out an area for the mountain to poke through.

Then, do the other mountain:

Now, we need to do the river. As the river layer is 'below' the gras layer AND the mountain layer, we need to rub a hole in each of them. So, pull out the eraser again, and get rubbing!

After that, turn the concept drawing off, and there you have one tile base, small filesize texture! With a bit of playing around, blurring the edges, adding more layers, and little stuff like that you can make a really good looking map by just using an image editor. Just look at River Dale for an example!

Step 5: Making a height map

This is one of the tricker bits to get right. But without a good height map, your map is also no good. So, down to buisness!

A height map is a picture that the Spring uses to work out the height of different bits of land. Hence, a height map. A height map looks a little strange at first, but you get the hang of the pretty quickly. A height map will be a greyscale image (an image made up of shades of grey, as opposed to colours), where white represents mountains, and black valleys, or water.

First off, the height map needs to be a different size to the texture. The height map needs to be 1/8th of the size of the texture, plus one pixel. So, to make this easier, here is a nice formula!

Height map size = (Texture size / 8)   1

For this tutorial my height map will be the same size as my texture, but thats just so I can show you how to make it easier.

OK, now onto the height map! Make 2 layers. On the bottom layer, put your Texture, just resized to the right size. The top layer will be where we are going to draw our height map. To help us do this, we need to set the Opcaity (how transparent an image is) of the height map layer to around 50%. Some people like more, some people like less.

Grab the paint bucket tool and fill the whole of the height map dark grey. This will be the flat, grassy bit of our map. Then, grab the paint brush tool, set it to White, make it big and make the edges soft. When you paint with this brush you should get a white dot in the middle, with a steady fall off towards the grey that you have as your grass. Use this brush to paint in some mountains, with the White in the center, slowly fading out to the grey grass on the out side.

Then, make the same brush black, and draw a big long line for the river.

When this is done, make the Opacity of the Height map 100% again, and save the picture. The Height map is done! It may require some tweaking later, but its fine for now.

Step 6: Metal Map

The metal map is alot like the height map. It is 1/8th the size one pixel. You can still underlay the texture for reference. It is still just a simple picture, like the height map. But this time, you need to do it in 'redscale', instead of greyscale. That is, using only red, and no green or blue. The more red the colour, the more metal is given. Depending on the style of map you want is how you make your metal map. For this map, we are going with an OTA style map with metal patches.

Make 2 layers. On the bottom layer, we will have our texture. On the top layer we will draw in the metal. For now, we can leave the metal layer empty, with full opacity, unlike the metal map.

Grab a brush. Make it about 3 pixels big and square. Make the colour about half red, with all the other colours all the way down. This will be some low metal patches for the starting positions. Place a couple of patches around the corners, enough to start with, like so:

Then, make the brush full red. Place some more patches in places like the mountains, and the middle of the map. Places that will be under constant attack. These will be the good spots for the players willing to risk it for the extra metal.

Now we need to hide the texture. To do this, grab the paint bucket tool and fill in the empty area black. You have now finished your metal map. Save the picture and your done!

Feature Map

A feature map is used to place Grass, Trees, Geovents and Features on a map. The tutorial will not cover how to make this, however the file is still needed. So we will just make a blank Feature map.

Feature maps are a bit like the other maps, however instead of being one eighth of the texture 1 pixel, they are just one eighth of the texture. So, for example, instead of being 129x129 pixels, your Feature map will be 128x128 pixels. Create a picture that is the required size, and fill it black. If you fill it white, you will overload the game, and it will probably crash. Which is a bad thing.

Compiling

For compiling, see the compiling tutorial