Difference between revisions of "BuildingMaps"

From The Battle for Wesnoth Wiki
(updated and expanded)
m (Share your map: remove extra period)
 
(37 intermediate revisions by 14 users not shown)
Line 1: Line 1:
A map is just a bunch of terrain strings arranged in a rectangle (the rectangle is known as the "map data"). There are two ways to use this rectangle in a file: as a stand-alone map or within a scenario. The easiest way to create maps is just to use the built-in editor, but if you want to actually understand how maps work, you should read a little about the map data format. This page explains that format, and then has some pointers about the editor, saving files, and how to play on a map once you've made it. For instructions on how to distribute maps, see [[BuildingMapsDistribution]].
+
{{Translations}}
 +
{| style="float:right"
 +
|
 +
__NOTOC__
 +
|}
  
 +
 +
{{Create}}
 +
 +
<div class="thumb tright"><div>
 +
[http://www.wesnoth.org/images/sshots/wesnoth-1.11.8-4.jpg http://www.wesnoth.org/images/sshots/wesnoth-1.11.8-4-175.jpg]
 +
<div class="thumbcaption">Map editor</div></div>
 +
</div>
 +
 +
A map is the most basic of user made content you can create. Complex scenarios can be developed on them, or they can be played on their own as simple battlefields with no extra work required.
 +
 +
Wesnoth features a fully featured map editor, accessible from the <b>Map Editor</b> option at the main menu. Inside you will find all the tools you need to create your own arenas to stage your adventures.
 +
 +
Inside the individual map files themselves are simply terrain codes that the games translates into graphics when you play. Usually you will never have to edit these files manually, but it can come in handy to understand the format. For more on terrain codes and the map data format, see the [[TerrainCodesWML]] page.
 +
 +
For further instructions on what to do once you have completed your map, see below.
  
 
== Creating a map ==
 
== Creating a map ==
  
Wesnoth has a fully functional map editor, accessible from within the game. The map editor should be fairly straightforward, however some helpful hotkeys can be found in the [[WesnothMapEditor]] article. Making good, balanced, interesting maps is another task altogether.  ESR has addressed it in his [http://catb.org/~esr/wesnoth/campaign-design-howto.html Campaign Design How-To]. If you run into trouble with the map editor, go ahead and ask for help on the [http://www.wesnoth.org/forum/viewforum.php?f=15 Multiplayer Development forum].
+
=== Note before you start ===
  
If you're a programmer, note that while the source code and most binary distributions come with the official graphical map editor, you may have to give the build system a flag or argument to tell it to compile them as well as the main game.
+
As of Wesnoth 1.12, the Map Editor has become more fully featured, and includes options to define scenario-related items on your map, such as name, unit placement, graphical items, time of day schedules, etc. <b>In order to create a plain map file with no scenario data, use the <i>File → Save Map</i> option. Scenario-specific content will not be saved unless you select the <i>File → Save Scenario</i> option. </b>
  
=== Adding units and map descriptions ===
+
More on scenario-specific content is discussed in [[BuildingScenarios]].
  
Campaign writers can't write campaigns without scenarios, so campaigns will always use scenario files. Multiplayer mapmakers, however, '''have a choice'''.  If you want to place an object or unit on the map, you must create a scenario file starting with the '''[multiplayer]''' tag and containing the ''map_data'' key therein. The ''map_data'' key can either point to a standalone map file or include the raw map data in quotes inside the scenario file.  
+
There is also a simple step-by-step guide [[How to make nice map in few minutes]].
  
Using scenario files for multiplayer maps, you lose the simplicity of the standalone map file, but you gain tremendous power.  With a scenario file, you can add units and objects, include a map description, and set default map settings like allies, starting gold, and experience modifiers. You can even create custom events. Check out [[BuildingScenarios]], [[ScenarioWML]], and [[BuildingMultiplayer]] for more information.
+
=== General guide to map making ===
  
=== Map data format ===
+
When you first open the map editor, you are presented with a large blank canvas covered in Grass. Below is a general guide to turning this empty meadow into an interesting and challenging battlefield.
  
This is not the Matrix. You normally don't need to look at encoded maps. However, if you would like to use some advanced terrain features or create scenarios and campaigns, you'll have to dive into the map code. The encoding for maps has a specific format in Wesnoth:
+
#<b>Decide on the intended use</b> <br> Maps intended to use in a campaign usually portray a location relative to the story being told, while maps intended for use in multiplayer usually have a more "arena-like" quality to them - they're often somewhat symmetrical, feature many types of terrains to benefit all units, and are often in not-rectangle shapes. <br><br>
 +
#<b>Choose your map size</b> <br> You can resize your map with the resize function. Choose one proportional to the gameplay you would like to see on it. A close-knit battle arena? Smaller is better. A large epic, battle with many sides? Go larger. Remember, though, to not make it too big, or you will bore your players. <br><br>
 +
#<b>Decide on a theme</b> <br> Wesnoth includes many different terrains for many different situations. Caves, dungeons, meadows, icy wastes, beautiful fall scenery, etc. Decide on a general theme for your map and be sure to work with the terrains that best fit your chosen theme. <br><br>
 +
# <b>Place large geographic features first</b> <br> If you were designing an outdoors map, now would be the time to draw large features such as mountain ranges, rivers, etc. On an indoors map, place the walls, design the passages and rooms, etc. It doesn't have to be perfect, just a general outline to work with. <br><br>
 +
# <b>Add castles, villages, and roads</b> <br> Every map needs castles and keeps to recruit on, and roads or flat terrain for units to move on (most units move best on Flat terrain such as roads, grass, or dirt). Add these now, making sure not to make your castles too big or close to one another. The placement of these determines the general flow of your scenario, so choose carefully. Also add villages. These will provide your team income and healing, so don't place them too close to each other (a general rule is about 6 hex radius (at minimum) around each village). Too many close together will result in imbalance from too much gold and health regeneration. <br><br>
 +
# <b>Finer details and revision</b> <br> Begin filling in the more open spaces of your map. Add forests, trees, hills, dirt, floors, the lot, while at the same time tweaking the general layout to fit your intended design. This is where the map really begins to reach completion. Also note to be sure to draw terrain features in a way that work with your plans for the scenario; for example, be sure to place bridges where you want your units to be able to cross a river. <br><br>
 +
# <b>Embellishments</b> <br> Your map is almost complete, but in order to look polished, throw in a few embellishments. Make the grass different colors. Put rocks and mud in the rivers. Strew trash around your buildings. Scatter flowers in the meadows. It's up to you, just don't overdo it.
  
* A map starts with a header with the following keys
+
It can take a lot of practice. Making good, balanced, interesting maps is an art unto itself. ESR has more handy tips in his [http://catb.org/~esr/wesnoth/campaign-design-howto.html#_map_composition Campaign Design How-To] article. You can also ask for assistance on the [http://www.wesnoth.org/forum/viewforum.php?f=15 Multiplayer Development forum].
** '''usage''', this should be 'map' for a map and 'mask' for an overlay mask
 
** '''border_size''', the size of the border, should be 1 for map and 0 for mask. When the border_size is 1 the map border is part of the map data, this means the user can define the border instead of the game taking a guess.
 
* Between the header and the data should be 1 empty line
 
* A map data file consists of any number of lines, each with the same number of strings.
 
* Each string must be a string specified in a ''string'' key specifying a terrain (see [[TerrainLettersWML]]).
 
* Each string may be padded with spaces or tabs and must be separated with a comma, except for the last string on a line this one may not have a comma.
 
* When the file is interpreted, each string will be replaced by the terrain it refers to.
 
* Empty lines are allowed before, after and between lines of characters, between lines is not advised.
 
* Terrains may be prefixed with a number followed by one space, these indicate the starting position for side ''n''. ''n'' = 1, 2, 3, ... 9 (more might work but is untested and unsupported). This is a change from the previous system where a starting position was automatically a keep.
 
  
It's advised to use spaces for padding and pad each column to be the same width; the game does this when writing a map file.
+
== Now what? ==
 
Since text file tiles are squares while game tiles are hexes, some tiles must be shifted.
 
Tiles in even-numbered columns are shifted down 1/2 of a tile.
 
For example, to have a road of connected dirt ('Re') tiles, the map data would look like this:
 
  
usage=map
+
You've created an awesome map with the map editor, but now what? It's actually quite simple.
border_size=1
 
 
Re, Re, Gg, Gg, Gg, Gg, Gg, Gg
 
Gg, Gg, Re, Re, Gg, Gg, Gg, Gg
 
Gg, Gg, Gg, Gg, Re, Re, Gg, Gg
 
Gg, Gg, Gg, Gg, Gg, Gg, Re, Re
 
  
== So now what? ==
+
=== Play your map ===
  
You've created an awesome map with the map editor and you're ready to test it out. But how can you do this? It's actually quite simple.
+
If you just want to play the map, maybe against the computer or with a friend, all you have to do is save it into the map editor's folder (the default location). Then, when you launch the game and host a multiplayer game, the map should appear <b>at the top</b> of the map choices screen.
  
=== Play your map ===
+
When creating a game on the multiplayer server, your map will be described to other players as a "User Map" and any replays stored on the server will refer to the game as "User Map."
  
If you just want to play the map, maybe against the computer or with a friend, all you have to do is save it into the map editor's folder (the default location). Then, when you launch the game and host a multiplayer game, the map should appear '''at the top''' of the map choices screen.
+
For the curious: Saving a map file like this creates a stand-alone file that holds the map data. That file is by default saved in <b><i>userdata</i>/editor/maps/</b>, and maps in that location are added to the top of the multiplayer map selection list.
  
When creating a game on the multiplayer server, your map will be described to other players as a "Use Map" and any replays stored on the server will refer to the game as "Use Map."
+
=== Use your map in a scenario ===
  
For the curious: Saving a map file like this creates a stand-alone file that holds the map data. That file is by default saved in '''''userdata''/editor/maps/''', and maps in that location are added to the top of the multiplayer map selection list.
+
If you're interested in more complex gameplay, you can use your map in a scenario. More information on how to proceed is on the [[BuildingScenarios]] page.
  
 
=== Share your map ===
 
=== Share your map ===
  
When you're ready to share your map with the world, post it to the [http://www.wesnoth.org/forum/viewforum.php?f=15 Multiplayer Development forum] or package it to be distributed on the in-game add-ons server. For instructions on how to distribute maps, see [[BuildingMapsDistribution]]
+
When you're ready to share your map with the world, post it to the [http://www.wesnoth.org/forum/viewforum.php?f=15 Multiplayer Development forum] or package it to be distributed on the in-game add-ons server. For instructions on how to distribute maps, see [[Distributing_content|Distributing Content]].
  
 
== See Also ==
 
== See Also ==
  
* [[WesnothMapEditor]]
 
 
* [[TerrainCodesWML]]
 
* [[TerrainCodesWML]]
 
* [[ScenarioWML]]
 
* [[ScenarioWML]]
 
* [[ReferenceWML]]
 
* [[ReferenceWML]]
 
{{Create}}
 

Latest revision as of 04:12, 21 June 2024



wesnoth-1.11.8-4-175.jpg

Map editor

A map is the most basic of user made content you can create. Complex scenarios can be developed on them, or they can be played on their own as simple battlefields with no extra work required.

Wesnoth features a fully featured map editor, accessible from the Map Editor option at the main menu. Inside you will find all the tools you need to create your own arenas to stage your adventures.

Inside the individual map files themselves are simply terrain codes that the games translates into graphics when you play. Usually you will never have to edit these files manually, but it can come in handy to understand the format. For more on terrain codes and the map data format, see the TerrainCodesWML page.

For further instructions on what to do once you have completed your map, see below.

Creating a map

Note before you start

As of Wesnoth 1.12, the Map Editor has become more fully featured, and includes options to define scenario-related items on your map, such as name, unit placement, graphical items, time of day schedules, etc. In order to create a plain map file with no scenario data, use the File → Save Map option. Scenario-specific content will not be saved unless you select the File → Save Scenario option.

More on scenario-specific content is discussed in BuildingScenarios.

There is also a simple step-by-step guide How to make nice map in few minutes.

General guide to map making

When you first open the map editor, you are presented with a large blank canvas covered in Grass. Below is a general guide to turning this empty meadow into an interesting and challenging battlefield.

  1. Decide on the intended use
    Maps intended to use in a campaign usually portray a location relative to the story being told, while maps intended for use in multiplayer usually have a more "arena-like" quality to them - they're often somewhat symmetrical, feature many types of terrains to benefit all units, and are often in not-rectangle shapes.

  2. Choose your map size
    You can resize your map with the resize function. Choose one proportional to the gameplay you would like to see on it. A close-knit battle arena? Smaller is better. A large epic, battle with many sides? Go larger. Remember, though, to not make it too big, or you will bore your players.

  3. Decide on a theme
    Wesnoth includes many different terrains for many different situations. Caves, dungeons, meadows, icy wastes, beautiful fall scenery, etc. Decide on a general theme for your map and be sure to work with the terrains that best fit your chosen theme.

  4. Place large geographic features first
    If you were designing an outdoors map, now would be the time to draw large features such as mountain ranges, rivers, etc. On an indoors map, place the walls, design the passages and rooms, etc. It doesn't have to be perfect, just a general outline to work with.

  5. Add castles, villages, and roads
    Every map needs castles and keeps to recruit on, and roads or flat terrain for units to move on (most units move best on Flat terrain such as roads, grass, or dirt). Add these now, making sure not to make your castles too big or close to one another. The placement of these determines the general flow of your scenario, so choose carefully. Also add villages. These will provide your team income and healing, so don't place them too close to each other (a general rule is about 6 hex radius (at minimum) around each village). Too many close together will result in imbalance from too much gold and health regeneration.

  6. Finer details and revision
    Begin filling in the more open spaces of your map. Add forests, trees, hills, dirt, floors, the lot, while at the same time tweaking the general layout to fit your intended design. This is where the map really begins to reach completion. Also note to be sure to draw terrain features in a way that work with your plans for the scenario; for example, be sure to place bridges where you want your units to be able to cross a river.

  7. Embellishments
    Your map is almost complete, but in order to look polished, throw in a few embellishments. Make the grass different colors. Put rocks and mud in the rivers. Strew trash around your buildings. Scatter flowers in the meadows. It's up to you, just don't overdo it.

It can take a lot of practice. Making good, balanced, interesting maps is an art unto itself. ESR has more handy tips in his Campaign Design How-To article. You can also ask for assistance on the Multiplayer Development forum.

Now what?

You've created an awesome map with the map editor, but now what? It's actually quite simple.

Play your map

If you just want to play the map, maybe against the computer or with a friend, all you have to do is save it into the map editor's folder (the default location). Then, when you launch the game and host a multiplayer game, the map should appear at the top of the map choices screen.

When creating a game on the multiplayer server, your map will be described to other players as a "User Map" and any replays stored on the server will refer to the game as "User Map."

For the curious: Saving a map file like this creates a stand-alone file that holds the map data. That file is by default saved in userdata/editor/maps/, and maps in that location are added to the top of the multiplayer map selection list.

Use your map in a scenario

If you're interested in more complex gameplay, you can use your map in a scenario. More information on how to proceed is on the BuildingScenarios page.

Share your map

When you're ready to share your map with the world, post it to the Multiplayer Development forum or package it to be distributed on the in-game add-ons server. For instructions on how to distribute maps, see Distributing Content.

See Also

This page was last edited on 21 June 2024, at 04:12.