Currently Online

Latest Posts

HelpTerrains

terrain_tool_2014.jpg Terrains are one of the base graphics in widelands. This page describes how they are implemented and should help with creating new terrains. In the end you'll find how to get your terrain in the game.

Properties of the terrain patterns

The patterns for terrains do have some restrictions:

  1. the width and height has to be 64 pixel
  2. they must be color indexed
  3. they couldn't get transparent areas

Squared patterns as triangles

The surface of the widelands screen consists of a lot of triangles:

surface.png

See geometry for more about this issue. The squared terrain patterns are splitted into triangles to fit the triangles of the surface. This test pattern shows how the splitting is made:

test.png

The four colors represent the triangles in which the pattern is splitted while rendering. Only one of those triangles are displayed for each triangle:

terrain_split_1.jpg

Note that the red and white triangles of the original pattern are assembled from two patterns to get one big red and one big white triangle. In the above picture the patterns are knowingly spread, to help distuinguish the single patterns. If all patterns are close together, it looks like this:

terrain_split_3.jpg

The patterns do have allways the same area where they adjoin:

Testpattern 2 Result
test_2.png terrain_split_4.jpg

This is importand to create terrain patterns which do not have visible edges if the patterns of the same type adjoin.

Smooth edges

Above you have seen, that the resulting triangles will have hard edges. But in game the edges are smooth. This is made with dithering....

Dithering

Different types of terrains do not have hard edges if they adjoin. This is made with dithering, a technique which blur the edges from one terrain type to another. Dithering could result in different results:

dithering_1.jpg

The above left example shows, that the testpatterns overlaps with the meadow terrain. The right one shows the opposit: The blue terrain overlaps the testpattern. If we use the blue terrain for all edges, the visible area of the testpattern shrinks drastically.

Animated terrains

Terrains can also be animated, which is seen for the terrains water. Animated terrains are a sequence of single terrain images which loops over and over. To achieve creating an animated terrain, you have to create as much images you need for a smooth look and feel. There is a setting called 'fps' to manage the speed of the animation.

How to get your terrain into the game

Where to save the images

Terrain images needs to be stored in the subfolders of path/to/gamedata/widelands/world/terrains/*. Animated terrains used to be in an own subfolder.

Configuration

The configuration of all terrains is done in the file path/to/gamedata/widelands/world/terrains/init.lua. The file itself explains the settings at the beginning. You can also refer to the Online documentation of Terrains

A side note on programming

This values defines a description for a terrain, but most of the calculation in widelands do not depend on terrains, they depend on the nodes where the terrains adjoin. Every node has 6 terrains around it. Depending on this terrains the node becomes f.e. walkable, arable or mineable.

Flags, buildings and immovables

All of the graphical things in widelands is placed not on the terrain itself, they are placed on the edges where the terrains adjoin. Buildings, roads, trees,... animals are walking along the edges:

field_and_nodes.jpg

Tagged with: Development, help