Table of Contents
Mapping Tips
This is a (unfinished) collection of tips and tricks that might help you to make beautiful maps quickly and efficiently.
This guide contains only general map making hints; Tileset-specific tips (which are probably even more interesting than this main page) are separated into their own documents:
For a few hints on designing maps that are interesting and fun to play, see
Map editors
FlaME seems to be the easiest choice so far; this guide is mostly FlaME-specific. You may also consider using Edit World.
FlaME can be run on windows via .NET, on linux/mac via Wine+.NET (reported on version 1.5.1 with Arch Linux), and even more-or-less natively via mono + mono-vb.
This document is rather advanced; to learn the basics of using FlaME, you should probably start with this guide by BlueMaxima.
Map making plan
This guide is a collection of hints you'd like to hear on specific stages of making a map. You can go through these stages in different order, but here is one of the ways that looks convenient and effective.
- Have some plan of the map in your mind.
- Paint a rough heightmap. On this point, you fix the location of all cliffs and ramps on the map, but you're free to revise the hills later.
- Import heightmap into FlaME, choose tileset, fill the map with a some default terrain and paint the cliffs.
- You can already test the map at this point, by putting a couple of players on it, compiling it and running the game. You can see if the cliffs are painted correctly, measure the distances, etc.
- Add some eyecandy, like more beautiful textures and decals, and some oil resources and scavengers.
- Also add player bases. If you're making a symmetric map, player bases should be added last; otherwise, it's ok to mix this phase with the previous one.
- Add a few random hills to the heightmap to make it a bit more varied, senseful, and, actually, beautiful as well. It's fine to delay this phase as much as you want.
- Test how AI players behave on the map. Add some gateways, so that they knew where to build defenses.
Heightmaps
A heightmap is a grayscale bitmap (image), the color of each point of which represents the height of particular map vertex: the light pixels are higher than the dark ones. Even though FlaME includes tools for height painting, using an external image editor and then importing the heightmap into FlaME usually turns out to be much more convenient, since little map editor will always lack features when compared to a full-featured image editor. But built-in height tools are still useful when you just need to quickly adjust a few tiles.
GIMP is a good free image editor. You may also consider using a vector image editor like Inkscape for raw sketches.
After you're done with the image, just import it into the FlaME. It should be in .PNG or .BMP format. When you want to modify the heightmap, you can either use built-in tools or export the heightmap back into .BMP file and then re-import it.
One thing about painting heightmaps: it's good when it looks beautiful! Even before you import it into FlaME, it's good when it looks beautiful by itself, as a grayscale picture ;)
Off-by-one tips and tricks
The first thing you should know about heightmaps is that a NxN pixel heightmap creates an (N-1)x(N-1) map. This is because the heightmap's pixels don't represent the height of tiles, but of their vertices (of their top left vertex, to be exact). This image is supposed to clarify it:
This is especially important in the case you're trying to make a symmetric map. In this case, you should explicitly add a one pixel wide line on the right and bottom of the heightmap. The following image is a perfectly symmetric heightmap; it's 97x97, so the map will be 96x96 tiles, and the black borderline on right and bottom is a necessary part of it. Without it, the borders of the map would have been unfair, giving the top left player more space to build. The image is 2x zoomed for conveinence.
Another issue you should be aware of is that canyons and walls you paint on the heightmap will be one tile narrower than you actually see.
Provisional heightmap technique
The FlaME's cliff brush automatically finds tiles suitable for cliffs by analyzing the heightmap. But it is not perfect; if you paint a very complicated heightmap with a lot of noise, even a human won't be sure where the cliffs are supposed to be on it. Thus, it is a good idea to create a simplier version of the heightmap especially to simplify the cliff painting process. Once you have such a heightmap, you can paint the whole map's cliffs with one click (see below). After cliffs are fixed, you can work more on the heightmap, adding more little hills and pits that don't need cliffs around them.
Here is an example illustrating this technique. The images are 2x zoomed for convenience.
Brushes
Even though all textures can be painted manually, FlaME's "Terrain painter" tab provides an excellent set of brushes that greatly simplify texture painting. But they can be a bit confusing, because of limitations of the game engine, especially of the original terrain renderer.
The main problem is that you can't paint any terrain on any terrain. That is, there is no way of painting snow on top of concrete in the Rocky Mountains tileset, because the transition tiles from concrete to snow are missing in game, and thus in FlaME.
Tileset-specific pages (Arizona, Urban, Rockies) provide you with a little set of hints on using brushes in different tilesets. Note: this situation changes dramatically with the introduction of the new terrain renderer. New-renderer-specific texturing will be discussed later.
Easy cliff painting
The easiest way to paint the map is to start with filling it with some default terrain type, and then use an extremely-big cliff brush to paint all cliffs on it with one click, like on the picture below. The cliff brush is not perfect, so you'd have to fix a few tiles manually (for example, by trying different angle value on each tile), but it's pretty easy anyway (especially if a provisional heightmap is used).
But for this trick to work, the default terrain should support painting cliffs on it. This works with red sand of Arizona, grey ground of Urban, and you can choose from gravel, gravel snow and snow in Rockies.
Manual texturing
Manual texturing is modifying map tile-by-tile using the "Textures" tab. You should only use this to do things that are impossible with the brushes provided by the "Terrain painter" tab. The "Textures" tab can be used to both break the tileset rules and make use of the tileset's extra features.
To see the tile types (cliff, road, water, etc), use the "Display tile types" checkbox at the bottom of this tab.
For convenience, in this text we will refer to the tiles by their numbers. To see the tile numbers, use the "Display tile numbers" checkbox.
This is how the "Textures" tab should normally look with all info shown:
Every time you finish with any major manual texturing, you should use the "Reinterpret terrain" button, so that FlaME brushes were aware of the changes you made; you can also use this button when you're importing a compiled (*.wz) map, so that brushes could work on it.
The manual texturing tradition of classic Warzone 2100 maps (like campaign maps, or skirmish maps included with the game) is rather complicated and, in fact, easier observed than explained. Still, when you don't look for these techniques explicitly, they can be hard to notice. Tileset-specific pages (Arizona, Urban, Rockies) may give you a few hints on how it is done.
Reassigning tile types
On the texture tab shown on the screenshot above, you are able not only to see the types of every tile, but also to reassign those tile types using this "Tile type:" combobox. This changes the type of all map tiles that have this texture. For example, you can click on the picture of some crater on this tab, and change its type to "Cliff face"; after that, the player won't be able to move units through this sort of craters.
Features
Different neutral units on the map, like huts, crushed cars, buildings, ruins, trees, boulders, are usually referred to as "features". Usually they are simply a decoration of the map, but you can also use them to make destroyable barriers on your map, like on the picture below, huts are blocking trucks from taking oil; don't overuse this though, because it's a bit annoying; still, it adds up to the fun when used with taste.
As you may or may not know, some features work well on every tileset, while other seem to be missing textures when used with tileset different from native. This issue is already fixed in the alpha game versions, where you can freely use any feature on any tileset, and also a few new features are introduced.
Tileset-specific pages (Arizona, Urban, Rockies) include some hints on feature placing traditions.
Bots and gateways
If you want your map to be suitable for skirmish/compstomp games, you should play-test the map several times to observe how AI behaves on it and probably do some tweaks. Even though there are not many things you can control in FlaME (since Warzone 2100 v2.3.8, you can try packing your map with custom AI scripts, but it's pretty complicated), here are a few things you should take into account.
This section covers only the default AI included in Warzone 2100 v2.3; custom AI scripts may have a different behavior.
- Base size. If the initial base lacks space, AI will have to expand and take more room on the open ground, which will look ugly and be poorly protected.
- Start location placement. The initial command center should be more or less in the middle of the buildable area, because the AI's base will form a circle around the command center. Trucks should also be somewhere in the middle, for they serve as starting location when no command center is available.
- Chokepoints and curved terrain. If the cliff lines are not convex enough, many AI units may get stuck, causing AI to play badly and, most importantly, causing the game to slow down and lag. No need to say that AI doesn't really work well on hover-only and VTOL-only maps.
- Gateways. Gateways are virtual one-tile-wide line segments on the map that hint AIs to build defenses on them. Gateways are usually stretched across the chokepoints. AI will build hardpoints on every tile of the gateway, except exactly two middle tiles; thus, if you make a gateway with odd number of tiles, it is not clear which two of these tiles will be left open. To paint gateways, use FlaME's gateway tool; delete them with shift+clicking. The following picture shows two gateway lines and the way bots will place hardpoints on it.
Scavengers
Scavengers can be placed instead of player 7 on 2-player and 4-player maps. Scavenger AI starts working when you place scavenger factories on the map for player 7. Each factory produces a constant stream of scavenger tanks. You can also put other units for scavengers, like defenses, oil derricks and power generators, research facilities, etc. Don't put too many scavengers though, because they tend to slow down the game.
Scavenger AI is rather weird nowadays. It just produces units, and when you attack some scavenger base, it sends units from other bases to protect it. Players can thus provoke scavengers to make them move a pretty huge amount of their units through another player's territory, which may be pretty painful in the early game.
AI is not very good in defeating scavengers. Usually putting scavengers on the map makes the map easier for human players.
Making maps for v3.0+
The new terrain renderer, that is only in alpha stage so far and is planned to be introduced in Warzone2100 v3.0, provides a completely different terrain painting experience; unfortunately, currently there are no map editors that are aware of this new ideology. Most importantly, v3.0 really needs a new map format; it's able to open old maps, of course, but the current map format is overdetailed for the new renderer. Thus, creating anything v3.0-specific in FlaME is still rather inconvenient, but it's worth a try.
What is it good for?
With the new renderer, you no longer think about terrain smoothing. You can paint any terrain near any other terrain, and it will be smoothed properly in game. But not in FlaME; in FlaME it would still look ugly. You will not find all those transitional tiles useful; you would prefer manual texturing to brushes for this very reason.
With the new renderer, you no longer think about different tiles of the same terrain, or tile directions. There is just one texture for sand, and all different sand tiles will be exactly the same in-game. That's why you would use only very few different tiles on your map. This also allows you to effectively reassign tile types; you can mix all the textures up and even use the same texture both as roads and as cliffs (as long as you have at least two different tiles that represent this texture). This is how an absolutely normal v3.0+ map may look in FlaME:
With the new renderer, you still need to think about decals. All those craters and roads are placed on the map "as is"; they are the same in v2.* and v3.0+
Within v3.0+, you no longer think about feature-tileset compatibility. You can put urban buildings on Rocky Mountain tileset, or plant snowy trees in Arizona. This can be very beautiful.
Tileset-specific pages (Arizona, Urban, Rockies) contain several ideas of abusing the new renderer capabilities to make your map look good with the new renderer and add fresh looks to the game.
Off-by-one problems
Current version of the new terrain renderer has the following off-by-one problem. Tile colors on the map are assigned in-game to map vertices, not to map tiles. This shifts everythig you paint to top left by 0.5 tiles. This doesn't apply to cliffs and water, for they are bound to be exact, but this might still be rather inconvenient when you want to achieve some exact look of your map.
Most common map errors
This section is supposed to be a checklist of what you should look at while testing your map.
- Oils beyond the scroll limits. If an oil resource is placed too close to the edge of map, one can't build on it. You should be especially careful with pre-built oil derricks, because you might forget about them while testing the game with pre-built bases (and bases are usually very close to the edge of map, too). Don't stop testing unless you see all possible derricks built. If you use symmetry and don't consider off-by-one problems, you shouldn't be satisfied with just one side's being able to build all derricks.
- Factory priority. If you're making a symmetric map, and play at medium bases, symmetric players should have same factories/labs initially removed. Since FlaME 1.17, this can be controlled with the "priority" object property.
- Cliff tiles. Even though a few defects in texturing don't really matter, it might be rather painful when it comes to cliff tiles, so watch them carefully. Even one forgotten cliff tile can affect the topology of the map. Using fast cliff painting techniques discussed in this article usually gives good results. If you care about putting diagonal cliff tiles correctly (which is possible on Arizona and Rockies), you should remember to check all complicated mountains in-game (because it's more convenient to navigate and look around the map in game).
Attachments
- 2nk8h1d.png (918 bytes) - added by dak180 13 months ago.
- 2nsnp4y.png (429 bytes) - added by dak180 13 months ago.
- 30ng954.png (10.8 KB) - added by dak180 13 months ago.
- 51aidt.png (55.8 KB) - added by dak180 13 months ago.
- 103tu7d.png (253.6 KB) - added by dak180 13 months ago.
- 107uafq.png (6.8 KB) - added by dak180 13 months ago.
- huts.jpg (34.5 KB) - added by NoQ 12 months ago.
- gateways.jpg (21.7 KB) - added by NoQ 12 months ago.
- offby1_newr.png (3.3 KB) - added by NoQ 12 months ago.
- newtiles.png (95.3 KB) - added by NoQ 12 months ago.










