It is relative easy to edit or create new textures. All textures are located in the subdirectory textures/ and do have a size of 64×64 pixel.
Note: If you edit your textures with The Gimp, you should activate the grid (View → [x] Show Grid). Then, you configure its appearance with Image → Configure Grid. Width and height should be set to 64 pixel and the color to yellow or some other flashy color. For the line style you should use dashed. Now it is very easy to get a clue about the texture size.
The name of terrain textures should start with tex_. The width is 64 pixel and the height a multiple of 64. Thus, one terrain type can have several litte varying textures, which get randomly chosen on mapload.
To let the game know about your textures, you need the file tex_list.txt located under the directory textures. On each line, you write a single character, followed by a space, followed by a filename. Thus, each character gets associated with a texture (take a look at maps for further instructions on how to use these textures in your map).
g tex_grass.png d tex_desert.png p tex_path.png F tex_forest.png - tex_fence_h.png | tex_fence_v.png
These so called „improvements“ are additional (animated), randomly placed textures to let the environment look more realistic. Their names should start with imp_. Because of the animation we need four 64 pixel sized frames, thus their width is 256 pixel (4*64). The height is similar to our terrain textures a multiple of 64, letting the game randomly select between them.
You have to declare them in the file imp_list.txt similar to terrain textures:
g imp_grass.png F imp_forest.png
Terrain textures described by the character g do have their improvements in the file imp_grass.png.
All textures may have transparent areas, but you shouldn't use them on terrain textures. For transparency you can use the file format Portable_Network_Graphics, which supports real transparency. Or you draw with the color pink (RGB: 255, 0, 255; hex triplet: FF00FF), which gets removed by the game.