Map development: Difference between revisions

From Spring
Jump to navigationJump to search
Knorke (talk | contribs)
revert to 10:08, 7 March 2012 oldid=23849 so that this is a navigation page again, instead of a specific guide
Line 1: Line 1:
[[Engine Development|Development]] < {{FULLPAGENAME}}
[[Engine Development|Development]] < {{FULLPAGENAME}}


= Getting Started (Tools) =
= Map making: SM2 =


'''Blueprint:&nbsp;'''[https://github.com/jk3064/Map-Blueprint https://github.com/jk3064/Map-Blueprint]&nbsp;
Maps, are a complex mixture of heightmaps and textures. Fortunately, there are several people who share their knowledge with us. Their few tutorials will make your life as mapper a lot better. You can also use the SpringMapEdit tool to edit existing map or make new ones.


The only other tool really needed is "Mapconv". The other tools available are there simply to make your life easier. A list of common mapping tools are as follows:


Mapconv


SMFED '''(Depreciated, no longer useful)'''
= SSMF Mapmaking Tutorial (Using JK's Blueprint) =


Grout '''(Depreciated, no longer useful unless texture was generated with L3dt utilizing tiles)'''
[[Creating a map using blueprint|Creating a Map using Blueprint]]
 
SMD Creator '''(Depreciated, no longer useful)'''
 
Start Position Editor
 
Das Bruce's Mapconv frontend
 
These tools have been compiled into a zip available here:&nbsp;[http://springfiles.com/spring/tools/mapping-tools http://springfiles.com/spring/tools/mapping-tools]
 
Keep in mind that mapconv is still being developed, so it may be necessary to update the included Mapconv to a later version, located here:&nbsp;[http://springrts.com/phpbb/viewtopic.php?f=56&t=21458 http://springrts.com/phpbb/viewtopic.php?f=56&t=21458]
 
= The Components of a Map =
 
* [[Mapcomponents: texture|Texture Map]]
 
* [[Mapcomponents: heightmap|Heightmap]]
 
* [[Mapcomponents: metal map|Metal Map]]
 
* [[Mapcomponents: feature map|Feature Map]]
 
= Compiling a Map (MapConv) =
 
== Texture Specifications ==
 
Texture map size is related in pixels and in spring map size. 2x2 MapSquares in spring are equal to 1024x1024 Pixels. Texture maps must be in multiples of 2. I.E. 2x2, 6x10, 12x16, 16x16, etc. No odd sizes are allowed (Example: 15x10).


= Full Guides For Map Making (Outdated) =


The guides listed below are outdated and scheduled for archival.


Height Map dimensions are Texture Map size / 8 + 1 pixel. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 + 1 = 1025x1025
*[[Create maps|aGorm's map creating Guide]]
*[[Map Making Guide|aGorms Ultimate Map Making Guide(unfinished)]]
*[[IceXuick Map Design Help|IceXuicks Map creating Guide]]
*[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=3941 Forboding Angel's map creating Tutorial]
*[[Maps:Tutorial|Another tutorial from a designing point of view]]
*[[A Complete Map Making Tutorial|A Complete Map Making Tutorial (under construction)]]
*[[Runecrafter|Runecrafter's Map Tutorial]]
*[http://springrts.com/phpbb/viewtopic.php?f=13&t=15390 Beherith's map creating tutorial using the World in Conflict map editor]


= Specific Guides (Extremely Outdated!) =


The linked pages below are scheduled for archival.


Metal Map dimensions are Texture Map size / 8 + 1 pixel. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 + 1 = 1025x1025
*[[Gras on maps|Gras on maps]]
*[[Maps:SMD|Spring Map Definition(smd) reference]]
*[[Maps:Compiling|Everything about Compiling your map]]
*[[MapsBalance|Some things about map balance]]
*[[MapSizes|Map sizes in pixels]] and memory information about map sizes
*[[Height Map Tutorial|RogerN's height map tutorial]]
*[[Create map texture with povray|Basic howto: create map texture with Povray]]


 
Features. Stones, rocks, trees, for your map can be found at:&nbsp;[http://springrts.com/phpbb/viewtopic.php?f=56&t=25752 http://springrts.com/phpbb/viewtopic.php?f=56&t=25752]
 
Feature Map dimensions are Texture Map size / 8. In other words, if your texture map is 8192x8192 (16x16), 8192 / 8 = 1024x1024
 
== Using MapConv ==
 
[[MapConv]] is a command line program that is generally started via a batch file .
 
Below is an example set of parameters given to mapconv:
 
<code>'''MapConv -i -l -c 0 -x 101 -n 100 -o EvoRTS-Craggy_Creek-v01.smf -t terrain.png -a height6.png -m metal.png -f feature.png -z "nvdxt.exe -dxt1a -nmips 4 -Sinc -quality_highest -file"'''</code>
 
Once compiled, you will get 2 new files: &lt;mapname.smt&gt; and &lt;mapname.smf&gt;
 
= Utilizing Blueprint =
 
Unzip the blueprint archive into your Spring Maps folder.
 
http://www.evolutionrts.info/random/mapcontainer.jpg
 
You will notice a new folder called "mapcontainer.sdd". The .sdd ending on the folder name is very important for testing as &lt;foldername&gt;.sdd tells spring to load map files from that folder. This way you can work on your maps without having to zip them up over and over again.
 
== mapcontainer.sdd ==
 
Inside the map container folder you have the following file/folder structure.
 
 
<div>'''<code>LuaGaia</code>'''</div><div>'''<code>mapconfig</code>'''</div><div>'''<code>maphelper</code>'''</div><div>'''<code>maps</code>'''</div><div>'''<code>mapinfo.lua</code>'''</div><div>'''<code>mapoptions.lua</code>'''</div><div><br/></div>
Now, copy your compiled map files (the <code>.smt</code> and <code>.smf</code> files) into the "maps" folder.
 
= Texture Splatting using SSMF =
 
SSMF mapping is adding detail textures all over the map based upon specified distribution areas. This will make your map infinitely more detailed and beautiful.
 
Adding SSMF to a map consists of the following steps:
 
* [[SSMF:_Distribution_Map|Distribution Map]]
 
* [[SSMF:_Detail_Textures|Detail Textures]]
 
* [[SSMF:_Specular_Map|Specular Map]]
 
* [[SSMF:_Grass_Shading_Map|Grass Shading Map]]
 
* [[SSMF:_Normal_Map|Normal Map]]
 
= Placing Features =
 
As previously mentioned, features can now be placed via LUA based upon a coordinate system that looks similar to this:
<div><code>local features = {&nbsp;</code></div><div><code>unitlist = {</code></div><div><code>},</code></div><div><code>buildinglist = {</code></div><div><code>},</code></div><div><code>objectlist = {</code></div><div><code>{ name = 'btreeclo_4', x = 7760, z = 112, rot = "0" },</code></div><div><code>{ name = 'btreea_3', x = 2520, z = 6904, rot = "0" },</code></div><div><code>{ name = 'btreeblo_5', x = 7736, z = 536, rot = "0" },</code></div><div><code>{ name = 'btreeclo_1', x = 2504, z = 7112, rot = "0" },</code></div><div><code>{ name = 'geovent', x = 177, z = 192, rot = "0" },</code></div><div><code>},</code></div><div><code>}</code></div><div><code>return features</code></div><div><br/></div><div>Of course, features can be placed by editing the set.lua file in a text editor, but that would take an extremely long time. Enter FeaturePlacer.</div><div><br/></div>
== Feature Placer ==
 
* [[Map Making: Feature Placer|Feature Placer]]
 
= Configuring Map Parameters (Mapinfo.lua) =
 
Admittedly, the default values used in blueprint mapinfo are awful. It may be wise for you to download another map that has used blueprint and copy and paste it's mapinfo contents into yours. However, you are also free to use the default or use the provided example.
 
In time, the mapinfo tags will be documented and this will like to that page. As it is the tags and values are pretty easy to figure out for the most part.
 
== MapInfo.lua ==
* [[Map_Making:mapinfo.lua|MapInfo.lua]]


= Skyboxes =
= Skyboxes =
Line 114: Line 42:
*[[Skyboxcreation|Notes about skyboxes]] notes on a prerendered sky box or cube map.
*[[Skyboxcreation|Notes about skyboxes]] notes on a prerendered sky box or cube map.


= Tools =


*[[Maps:SpringMapEdit|Frostregen's SpringMapEdit]]. 3D editing, Compiles and import SM2 directly. Beginner friendly but still powerful.
*[[MapConv]] Map converter program, compiles maps.
*[[MapConvNG]] Rewrite of MapConv that works on linux / 64 bit.
*[[Maps:Map Designer]]&nbsp;'''(Outdated, Depreciated)''' Hugh's 3D map designer. Splatting, heightmap editing, splat painting, SM3
*[http://www.springfiles.com/show_file.php?id=1679 Starting position creator]: Or you can always find out the hard way which x/y coordinates are good by starting spring and having a look at the mouse cursor coordinates.
*[http://code.google.com/p/conflictterra/source/browse/games/CT/luaui/widgets/tp_coordinate_help.lua Coordinate Helper widget] A small widget that helps you with finding coordinates ie for start positions. Every time you put down a marker it will log its position in [[Infolog.txt]] and also in MAPNAME_coordinates.txt Helpfull if you need to get lots of map coordinates and do not want to write them down by hand. (it writes SpawnResource in front of the coordinates but you can ignore or edit the widget)


= Mutators =
= Reference and FAQs =


Mutators are files that add new content to exiting game files. "[http://springfiles.com/spring/tools/spring-features Spring Features]" is an example of a mutator.
*[[Map File Format|How maps are stored in the engine]]
*[[Maps:Noob Mistakes]]
*[[Water Height: Mapconv vs. Heightmap]]


This section needs a proper description.
----


[http://springrts.com/phpbb/viewtopic.php?f=13&t=21808 http://springrts.com/phpbb/viewtopic.php?f=13&t=21808]
TIPS:


= Archiving a Map =
A useful tip, on almost every map in a 1v1 you will start opposite your opponent unless you choose your position. this is because random order simply randomly distributes players at the default start points which in almost every map are opposite each other. One exception that I know of is flooded desert where you both start on the left hand island.


<div>Spring reads two different archive formats, 7zip and zip. Both archives are named sd7 and sdz, respectively. 7zip files are made by The 7zip archive program, available at&nbsp;[http://www.7-zip.org/ http://www.7-zip.org/]</div><div><br/></div><div>Navigate to your mapcontainer.sdd folder and zip it's contents into either a .7z file or .zip (7zip format is '''HIGHLY RECOMMENDED'''!), usually naming schemes follow the actual mapname (&lt;mapname.sd7&gt;, such as&nbsp;EvoRTS-Craggy_Creek-v08.sd7</div><div><br/></div><div>http://www.evolutionrts.info/random/examplearchivewith7zip.jpg<br/></div><div><br/></div><div>Once completed, copy the sd7/sdz file to your maps folder. At this point, be sure to remove the .sdd ending from your mapcontainer.sdd folder (or change the map name/version contained withing), otherwise you might get sync errors because spring is reading from the wrong archive source.</div>
----
<br/>[[Category:Map making|Map_making]]


= Tools =
Make sure that your map's ideas and game-play is sound before you release it for good. Do a lot of beta testing and learn about good level design! You can learn about what makes a good map by playing on good maps, so play often and map well. -url00


*[[Maps:SpringMapEdit|Frostregen's SpringMapEdit]]. 3D editing, Compiles and import SM2 directly. Beginner friendly but still powerful.
= Map making: SM3 (Experimental) (DEPRECIATED) =
*[[MapConv]] Map converter program, compiles maps.
*[[MapConvNG]] Rewrite of MapConv that works on linux / 64 bit.
*[[Maps:Map Designer]]&nbsp;'''(Outdated, Depreciated)''' Hugh's 3D map designer. Splatting, heightmap editing, splat painting, SM3
*[http://www.springfiles.com/show_file.php?id=1679 Starting position creator]: Or you can always find out the hard way which x/y coordinates are good by starting spring and having a look at the mouse cursor coordinates.
*[http://code.google.com/p/conflictterra/source/browse/games/CT/luaui/widgets/tp_coordinate_help.lua Coordinate Helper widget] A small widget that helps you with finding coordinates ie for start positions. Every time you put down a marker it will log its position in [[Infolog.txt]] and also in MAPNAME_coordinates.txt Helpfull if you need to get lots of map coordinates and do not want to write them down by hand. (it writes SpawnResource in front of the coordinates but you can ignore or edit the widget)


= SSMF Mapmaking Tutorial (Using JK's Blueprint) =
SM3 (Spring Mapformat 3) is getting allong nicely and maps using this format can be made. The following is documented so far.


'''*A Note to wiki Editors*'''
*[[SM3 Map Format|jcnossen's brief description on how this mapformat works.]]
*[[SM3 FAQ|The first FAQ for the new mapformat.]]
*[[Maps:Map Designer|SpringMapDesigner]]


<code>The below listed tutorial needs to be pulled apart and separated into proper pages following an outline, making it much easier for future addition and proper documentation separation.</code>
'''''NOTE:''''' SM3 format is <s>broken at the moment, do not use it. It only renders at all if sm3 shaders are disabled in springsettings, and even then with very low fps </s> working now: [http://springrts.com/phpbb/viewtopic.php?p=396749#p396749 http://springrts.com/phpbb/viewtopic.php?p=396749#p396749] but performance is untested, . Software rendering is corrupted on nvidia cards, but not on ati ( unverified )


[[Creating a map using blueprint|Creating a Map using Blueprint]]
= <br/> =


= Minimal template =
= Map Mutators =
While JK's Blueprint is very useful for advanced map architects it can be bit confusing if one wants a minimal barebone template with defaults.


JK's template is still useful starting point. Extract it, then delete everything except mapinfo.lua and everything in maps folder (except your .smf and .smt files). Next copy paste following to mapinfo.lua (not the most minimal but minimal enough):
Mutators are files that add new content to exiting game files. Appearently that is possible for maps too: [http://springrts.com/phpbb/viewtopic.php?f=13&t=21808 http://springrts.com/phpbb/viewtopic.php?f=13&t=21808]
<pre>
local mapinfo = {
  name        = "MyMap",
  shortname  = "",
  description = "",
  author      = "",
  version    = "",
  modtype    = 3, --// 3=map


  teams = {
<br/>[[Category:Map making|Map_making]] <br/><br/>
      [0] = {startPos = {x = 8, z = 8}},
      [1] = {startPos = {x = 16, z = 16}}, 
  },
}
return mapinfo
</pre>
In summary: maps folder with .smf.and .smt files and single mapinfo.lua file. You should be now able to test your map immediately (if files are placed to mapcontainer.sdd).

Revision as of 06:05, 17 October 2012

Development < Map development

Map making: SM2

Maps, are a complex mixture of heightmaps and textures. Fortunately, there are several people who share their knowledge with us. Their few tutorials will make your life as mapper a lot better. You can also use the SpringMapEdit tool to edit existing map or make new ones.


SSMF Mapmaking Tutorial (Using JK's Blueprint)

Creating a Map using Blueprint

Full Guides For Map Making (Outdated)

The guides listed below are outdated and scheduled for archival.

Specific Guides (Extremely Outdated!)

The linked pages below are scheduled for archival.

Features. Stones, rocks, trees, for your map can be found at: http://springrts.com/phpbb/viewtopic.php?f=56&t=25752

Skyboxes

Tools

  • Frostregen's SpringMapEdit. 3D editing, Compiles and import SM2 directly. Beginner friendly but still powerful.
  • MapConv Map converter program, compiles maps.
  • MapConvNG Rewrite of MapConv that works on linux / 64 bit.
  • Maps:Map Designer (Outdated, Depreciated) Hugh's 3D map designer. Splatting, heightmap editing, splat painting, SM3
  • Starting position creator: Or you can always find out the hard way which x/y coordinates are good by starting spring and having a look at the mouse cursor coordinates.
  • Coordinate Helper widget A small widget that helps you with finding coordinates ie for start positions. Every time you put down a marker it will log its position in Infolog.txt and also in MAPNAME_coordinates.txt Helpfull if you need to get lots of map coordinates and do not want to write them down by hand. (it writes SpawnResource in front of the coordinates but you can ignore or edit the widget)

Reference and FAQs


TIPS:

A useful tip, on almost every map in a 1v1 you will start opposite your opponent unless you choose your position. this is because random order simply randomly distributes players at the default start points which in almost every map are opposite each other. One exception that I know of is flooded desert where you both start on the left hand island.


Make sure that your map's ideas and game-play is sound before you release it for good. Do a lot of beta testing and learn about good level design! You can learn about what makes a good map by playing on good maps, so play often and map well. -url00

Map making: SM3 (Experimental) (DEPRECIATED)

SM3 (Spring Mapformat 3) is getting allong nicely and maps using this format can be made. The following is documented so far.

NOTE: SM3 format is broken at the moment, do not use it. It only renders at all if sm3 shaders are disabled in springsettings, and even then with very low fps working now: http://springrts.com/phpbb/viewtopic.php?p=396749#p396749 but performance is untested, . Software rendering is corrupted on nvidia cards, but not on ati ( unverified )


Map Mutators

Mutators are files that add new content to exiting game files. Appearently that is possible for maps too: http://springrts.com/phpbb/viewtopic.php?f=13&t=21808