HowToUseTiledToCreateStendhalMaps: Difference between revisions
Content deleted Content added
imported>Ufizavipupu No edit summary |
imported>AntumDeluge →Parallax Background Support: how to specify multiple tilesets to ignore |
||
| (89 intermediate revisions by 5 users not shown) | |||
Line 1:
{{Navigation for Stendhal Top|Contributing}}
{{Navigation for Stendhal Contributors}}
= How to Use Tiled =
Tiled is a tile editor that supports layers and different tilesets.
If you don't have the map files from Stendhal already, please follow these instructions to setup a development environment with the latest source code and map files: [[Stendhal on Eclipse]]
= How to create a Map =▼
{{TODO|update these screenshots to the most recent version of Tiled}}
[[Image:Tiled1.png]] <br><small>Figure 1: The Tiled map editor</small><br>▼
Before you create a new map, I suggest, that you open some existing maps and look around how they are built. And there are many places in Stendhal already, that could use some improvements or additions.
First you need to load the <b>template.tmx</b> map file and resize the map to the desired size.<br>▼
Click on <i>File</i> and now choose <i>Open</i>, find where you extracted the stendhal_mapeditor-2.00.zip find <b>template.tmx</b> and click <i>Open</i>▼
[[Image:Tiled2.png]] <br><small>Figure 2: How to open the template map</small><br>▼
▲[[Image:Tiled1.png]]
▲First you need to load the
▲Click on
▲[[Image:Tiled2.png]]
We are going to work on a 64x64 (64 tiles by 64 tiles) map. '''First make sure all layers are visible, before you resize.''' Do this using the 'Show' tick boxes in the dialog at the side panel.
[[Image:Tiled3a.png]]
Then click on
Note, a 64x64 map is not big (it will take a player around 40 seconds to move from one end to the other) but it is big enough for our example.
[[Image:Tiled3.png]]
As you see in the resize dialog you can resize the map and even position the current map at any point in the new map size. Hence you can always resize your map later. '''Make sure all layers are visible before you resize any map.'''
[[Image:Tiled3b.png]]
Don't change the layer names from:
Line 44 ⟶ 46:
etc etc seen on the template file.
Now save this map as
[[Image:Tiled5.png]]
==Tilesets==
The map
[[Image:Tiled6.png]]
Line 108 ⟶ 110:
[[Image:Tiled7.png]]
Any image not in ''tileset/'' shouldn't be used. If you want to you can fill in a
[[Image:Tiled8.png]]
Line 119 ⟶ 121:
These five layers are the ones that host the game graphics:
* 0_floor
* 0_floor_parallax ''(optional alternate floor layer for clients that support parallax backgrounds)''
* 1_terrain
* 2_objects
* 3_roof
* 4_roof_add ''(optional layer)''
The ''logic'' layers
Line 144 ⟶ 147:
= Editing the map =
Choose the
Our village is going to be a rich one, so let's look for a nice ground tile for it.
Click on
[[Image:Tiled9.png]]
Ok, but the map still looks too simple.
So now let's add some details to the terrain layer (flowers, and bushes). We need to load those tiles, so repeat the steps to load ground tiles, but look for ''tileset/plant/bush/bushes.png'' and ''tileset/plant/flower/daisy_white.png''.
Make sure you choose
Dot some bushes and flowers around
[[Image:Tiled10.png]]
We need a path, so we add ''tileset/ground/green_paving_3.png'' to our palette, and draw one on the ''1_terrain'' later.
We change to the
[[Image:Tiled11.png]]
Now let's add houses and a tree to our village. As you can see adding elements isn't hard, you simply must flip between layers.
And now for the tree. Trees are a bit more complex than houses because they are split over two layers: 1 and 2.
First we add ''tileset/plant/tree/spruce.png'', and then draw the lower part of it to the ''1_terrain'' layer.
[[Image:Tiled12.png]]
Now switch to the roof layer. The roof layer is for objects that are drawn on top of players and creatures in the game.
Line 176 ⟶ 179:
Draw the upper part of the tree on roof layer.
[[Image:Tiled13.png]]
Let's practice this. Let's add another tree.
[[Image:Tiled14.png]]
Remember how to deal with two layers? Make sure the top of the tree is on the roof layer.
[[Image:Tiled15.png]]
A village would not be much of a village without houses. Let's draw one. Start with the wall.
[[Image:Tiled16.png]]
The wall was drawn on terrain this time, so we can add some decorations to 2_object to make it a bit more interesting.
[[Image:Tiled17.png]]
The roof can be drawn on 3_roof, so that a player walking behind the house will be covered by it.
For our map we also add the top of the door there, as the window borders already used the space in 2_object.
[[Image:Tiled18.png]]
The front of the blue roof does not have a border like the rest of it. Also we have another problem:
Line 203 ⟶ 206:
So we draw the missing border to 4_roof_add, and move the skull there too.
[[Image:Tiled19.png]]
Still there? Good, now let's add lots of details to make a good map!
[[Image:Tiled20.png]]
Complete the map yourself :)
Line 216 ⟶ 219:
* Protection (to define non pvp areas)
The collision layer determines what is passable and what is not.
You need to add the new tileset ''tileset/logic/collision.png'' and in then choose the red square. To define what cannot be travelled over draw a red square in the Collision layer on each non passable tile. It is helpful to drag the opacity of this collision layer to about 30%.
[[Image:Tiled21.png]]
[[Image:Tiled22.png]]
Once you have completed this we have to add objects that are real entities in the Stendhal server. Things like NPCs, some portals, creatures and so on ... Notice what layer we are working on. To add monsters, select them from ''tileset/logic/creature/'' in the ''objects'' layer.
Line 227 ⟶ 230:
We'll add some sheep, sheep food, and a couple of chickens.
[[Image:Tiled23.png]]
We want to make the whole area protected, to we add the tileset ''tileset/logic/protection.png'' and fill on the ''protection'' layer
[[Image:Tiled24.png]]
And you are done! :)
Now, go build your own maps.
Please note that, if during your work you find that some important tiles are missing please create the tile and send it to us so that everyone get it and can see your tile.
Line 246 ⟶ 249:
* When you put the portals in for new levels, interiors need only the plain white tile saying 'Portal' (even if you are going upstairs). This is because all interior portals are coded by hand so they need the plain white one, not an arrow pointing up or down.
* To help you understand and to have similar approach, take a look on similar dungeons, outside houses or interiors
= Parallax Background Support =
A parallax background is an image that scrolls at a different rate relative to normal map layers. It is drawn under map layers and visible where tile image data is not used (fully transparent through all layers). The image can be specified in a zone's XML config using the attribute name "parallax" (example: {{StendhalFile|9c0315793a16907c83d3e0dce761e8e6a66ae115|data/conf/zones/kikareukin.xml#L58|6_kikareukin_islands}}). The value should be a path relative the ''data/maps/parallax'' directory. For example, the value "semos_surrounds" would tell the client to use the image ''data/maps/parallax/semos_surrounds.png''.
However, when adding parallax backgrounds to maps, there are some things to consider for maintaining backward compatibility with the classic Java client. Transparent areas in a map will simply be black in the Java client. So, unless specifically desired, map data should not contain fully transparent areas. But there are two methods that can be used to instruct supporting clients on where to draw transparency on the map:
# You can specify tilesets to be ignored by the client when building map data. Use the attribute "parallax_ignore_tiles" in the zone's XML config. An example of how to do so can be found in the configuration of {{StendhalFile|9c0315793a16907c83d3e0dce761e8e6a66ae115|data/conf/zones/kikareukin.xml#L18|7_kikareukin_clouds}}. Multiple tilesets can be defined using a comma-delimited value (example: image1,image2,...).
# An additional layer named "0_floor_parallax" can be added the TMX map file. The layer should be identical to "0_floor" excluding the portions that should be transparent. An example of how this is done can be found in map of {{StendhalFile|9c0315793a16907c83d3e0dce761e8e6a66ae115|data/maps/Level%206/kikareukin/islands.tmx|6_kikareukin_islands}} ([https://www.mapeditor.org/ Tiled Map Editor] needed to view).
= How to use the map in Stendhal =
Line 252 ⟶ 263:
Add the zone to data/conf/zones.xml as explained in [[HowToAddMapsServerStendhal | How to add new maps to server]]
Finally if you want to fine tunning the map by adding NPC, or something else, just create a new file name
<br>
= Trouble shooting =
* If you are submitting this for inclusion in the game, please edit the path for the tilesets so it is correct. usually
* Tiled will only resize visible layers. If you want to resize a map, make sure all layers are visible (the tick box 'Show' is selected) before you resize. But don't worry, if you forget to do this, you can open the .tmx file in a text editor and manually change the sizes of the layers which have been missed out.
<br>
<br>
[[User:Danter | Danter ]] Has made an extended tutorial, that focuses on changes made to the stendhal map format and a few techniques he uses, check that out aswell:
[[HowToUseTiledToCreateStendhalMaps2 |How To Use Tiled To Create Stendhal Maps: Continued]]
<br>
<br>
----
[[ Stendhal | Back to stendhal main Wiki page ]]
| |||