Creating Landscapes


The main part of this discussion came from Wings in early 2000 and describes the steps required to produce a historically correct scenario and its accompanying landscape. Following that (below) are some elementary tips by Mr. McDrum, the author of the 'First from Scratch' instructions for using the Landscape Editor.

The following article describes how we use our scenario editor to create landscapes with the high detail we support. Our lead researcher Matthias 'Sidi' Siedlaczek (in August 2000 his e-mail address was sid@schwaben.de) was responsible for defining the area from historical documents and looking for proper maps in a large scale. Some of those maps from North Africa created some difficulties to obtain, simply because France passed the majority of them back when those countries lost their colony status. Those countries now have all large scale maps under military security in fear of terrorists and war. Remember we need 1:25,000 or 1:50,000 scale in order to create a landscape detailed enough for our game. On those maps each single path, house, barn and sometimes even fences are drawn.

Help came from collectors and one university. The collector had a scout map from December 1942 of exactly the area we needed. We even had the scout reports available right there on the map, what could be better? Unfortunately that map ended in the north short of Kasserine, the map we had hoped for. A German university luckily had some maps of Kasserine they lent to us for scanning. Without the help from them we never would have had historically correct maps. We could have chosen to just "create" a map and claim it to be Kasserine, but we never thought about that: We wanted the terrain be as close as possible within the game's limits. So we can be sure that a village is where it was back historically. But of course the buildings will look different since we do not have historical photographs of each one.

Now you might ask why we didn't use Digital Elevation Data (DEM) available commercially. The problem is resolution. We need DEM's with 10x10 meters per pixel. Those maps are available for military use only; most DEM's have 50 or 100 meters per pixel, something too rough for our purpose.

Below we illustrate the steps Sidi had to go through to create the DEM's or height maps. Following that section is how our landscape designers put graphics on the surface.

This is a sample map, scale 1:25000 of the St-Lambert-sur-Dive area. You can see the immense detail those maps offered us. The French maps were detailed and even included each bocage (hedgerows) while the Italian maps were pretty general and poor but workable.

Each map was scanned and cropped according to the area we knew the battles took place.

Note however that the French maps were 10 years old and thus too recent. We verified each map with a large scale historical map to edit town size, road layout and changes like airfields, military installations etc.

Take a note of the Orchard "la Guittonniere" and the town "L'Eglise", that's were the in game screenshots were made.

Now Sidi had to draw each individual heightline of the map into a separate greyscale layer. We need those heightlines to generate the final DEM. The problem was that each heightline needed to be drawn in its respective greyvalue which resembled the height it reflects. Example: a line with a greyvalue of 200 would be 200 meters high.
With the finished greyscale layer we used our custom fractal terrain generator to create a consistent heightmap to be used. In order to recreate the roughness of the terrain the fractal generator used a roughness layer on top which showed the smoothness of the terrain underneath.

Some editing afterwards made sure that there were no errors or sample errors being made.

In order to give the scenario editors enough information Sidi created an information map to show initial positions, attack paths and victory targets.

With the information map along with the document (below) which listed what really happened there the designer was able to create the scenario based "loosely" on historical facts (see below for details). This is a rather small scenario (4x3 kilometers) but had fierce fighting, the end of the Falaise Gap.

Our landscape designers' first step is to load the heightmap with the overlaying historical map and generate the surface textures. This provided a huge problem in the beginning due to the detail of our landscapes but Markus, the one who created our editor, implemented an algorithm to distribute all textures on the map plus to calculate and optimize each additional texture generated.
Now the road network can be laid out. Some restrictions applied to lay them out because we already had to take the AI into account. Long range pathfinding is a serious issue and not easy to do. The best solution was to give some help to the AI when using roads: they had to be laid by defining vectors on the surface which the AI had access to. This limited our road angles to 45° but in 3D this actually isn't noticed.

You will also notice the fields on this map. Those fields do not serve a particular function although they are an indicator for the player of obstacle free areas. Be careful though when navigating during rain: Those fields can make your progress really slow.

The last and most time consuming task: Layout the objects. We implemented some help into the editor to make it easier, but still we had to place thousands of objects on the landscape. Woods (single trees!), bocage, fences, walls, dozens of house types, churches, and even railway stations and telegraph masts can be placed.

The original map gave us a nice guide as to what to place, but to make the landscape "look good" the designer had to know what the landscape he creates actually looks like in the game: Here our Editor created by Markus really shines: One button and you drive through the area you just created in 3D!

This screenshot is from the above map. The player sits on the crossing at "la Guittonniere" and looks to the NW. This position is marked on the first map (leftmost point).

Now you see that a top down view of a map gives you no indication of visibility at that point. The map suggested a nice broad area but in reality the trees and bushes block a lot of sight.

The other spot chosen was near the village of "L'Eglise" facing to the NE showing the church in the town center as seen on the map. The historical town was smaller than the one shown on map, one of the corrections we had to make when referencing the historical map.

Notice the town sign: You can't really read such signs, but clicking on them will display their contents (the town name) in your message window, thus making navigation a little bit easier.

The above solution was a hard process to develop. Remember: Although we are limited to 8 basic textures for a landscape the number of combinations we needed with 3 mip map levels and 3 different roads on top was astonishing: Some landscapes have over 1500 individual textures just for the surface!

Those 1500 textures plus our object textures are well over 15 megabytes, something which does not fit in current 3D cards. Two solutions are available: Either downsize the textures thus reducing detail, or dynamically sap textures in the card. The latter solution preserves the look at the cost of speed, while the first solution has the speed but not the look. We implement an option where the user can custom set his choice to his machine's capabilities.


McDrum (on May 15, 20000 at 1:56 a.m.) wrote:

1) The rougness is too much, and no idea about how to smooth it.

As the Landscape document states, your Roughness Layer mask needs to be almost if not completely devoid of light i.e.: Black. Lighter shaded areas will cause more roughness. The tip given is to create a new layer with the RGB values of 0,0,0 and save in Greyscale mode. Use this for your roughness layer, and combine with your heightline .BMP for your final heightmap.BMP

Another alternative is the PE Fractal Generator Program by Dark Angel, available on the PEDG Tools section.

2) The placing of the buildings, trees, and other elements, is made in the most difficult way. I am almost certain that the Landscape editor has some easier way to do it.

Th placing of buildings can be a bit tedious to get them right. Hint. Get the objects in your object Block organized and named so you may select and use them effectively. For example, click the little display window at the bottom of the floating Palette under the Landscape Tab. The Object/Texture Block window pops up. If no objects appear, you have no Object block loaded and should just load an existing one, for now.
Load one, any one will do, just press the "Load" button and select an ".OBJ" file. Ok now you should see the progress of those being loaded and some objects will appear.
On the Obj/Tex window are 3 little buttons used to zoom in and out of the blocks. You will see why this is important later. Ok press 4 to zoom out.
On the drop down list, where it says single (not the box marked single) scroll down and find Dorf: Oben,Unter,Links,Rechts This is German for House over, under, left, right respectivly. Hint* This "Group" can be renamed to whatever makes sense to you. A lot of Objects are supposed to be placed in a certain orientation. The direction in the name tells you which side of the street/road/viewpoint that the House should face. This keeps the stone patios and doors etc, facing in the right direction. What someone has done is add an object to the object block and set the way it faces. This can be done also but I'll save that for later as this is getting long already.
Ok, click on the Dorf Oben and see the 2 rows of houses outlined.
Now zoom in to get a bit better look at it and all the other objects.
Try selecting Groups and see what and where they are. Remember this is a top-down view of the object and if the cross section from the top is small, the object will be very difficult to spot in the Object block even when you zoom in all the way.
Trees and Bushes seem to get easier to place with practice, and, of course, after someone shows you how. Most things are easier after someone shows you how.

Select one of the bushes on the drop-down list, for example Bocage down Up and Down is the way the bushes are supposed to be oriented.
Ok select the Pen tool (the 2nd icon down on the left of the floating palette looks like a pen doh.)
Now place the cursor over the area you would like to start your hedge and hold down the left mouse button as you draw your line of bushes.
If you are zoomed in on your map (the rightmost slider on main map window), you will see the bushes being applied to each square you pass over in a semi-random fashion from the Objects you have selected in the object blocks.
You may progress quite rapidly with this. You may wish to add an occasional tree or something.
It is possible to use this techique on any objects which you put into a group.
If you wish to have gaps in between some of your bushes simply find a few blank squares in the object block and select them by clicking on them. The number of objects compared to number blank spaces will give you control over the density of the objects you lay down.

Next Tip: The Rectangle tool, the 3rd icon down on the left side of the floating palette.
Ok press 4 to zoom out your Obj palette.
Select the Wald (German for Woods or forest) group. Notice the outlined trees there. Ok remember where they were. Now Scroll down and select any empty group, say 64. Now select about 20 blank squares. Careful here* because of the aforementioned Top-down size it is very easy to select a square which you think is empty but is in fact not. There is a way to mark these better but for the sake of berevity I'll leave it out here. If you're not sure just place the object on the map and zoom all the way in on it to see if was blank.
Select some or all of the trees and maybe a couple bushes in addition to your blank spaces.
If you do this while in the Wald group the blank spaces will be kept there. I chose my blank group and add the objects I want. That way I know what really belongs just to the Wald group.
Ok, Select the rectangle tool and place your cursor on one corner of where you want to start your woods.
While holding the mouse button drag your rectangle to the size you want it. Release the button and, viola, instant forest.
If you don't see the trees, zoom in closer to the map. This is not a finished forest but it sure beats putting them down 1 by 1. Again, you vary the number of trees to the number of blanks to control the density of your forest.
Ta Da. easy, eh?

3) I Don't have any idea if there is an undo commmand, and a lot of things I ignore how to undo, or erase if the result is not what I wanted.

4) Most of the options of the landscape editor are of unknown utility.

Tip: Simply select the Single Box on the Obj/Tex window or use a group of blanks called eraser for bigger jobs and use the pen or rectangle tools as described above.
Some shadows still seem to remain.
Perhaps Teut will jump in here and explain how to avoid those nasty shadows where nothing remains to leave one. [Editor's note: Select the texture in col 1, row 2. It acts an 'eraser' for things just above the basic landscape textures including roads and streams. The texture col 1, row1 will erase the basic landscape textures themselves.]

5) I hope to get more in the next week. As usual, as soon as I have something useful to publish, I will make a step-by-step guide for the landscape editor.

I'll try to fill in some of the unknowns, but I'm no expert and keep in mind the time I spend answering posts etc. cuts down on the time I have available to me to work on the new scenarios being developed by the Team at PEDG.

And that was all, friends. McDrum

I hope this is useful for you all. Steve P. (Pedg team)


St. Lambert Map-Size: 4 km wide, 3 km long. Date: 20 August 1944
Historical Conditions:
Allies: The last act of closing the gap has begun. At St. Lambert the last remnants of the german elite forces fight to their last bullets being totally encircled: in the north from the British forces, in the east of a Polish tank batallion. The US forces try to wipe out this last strongpoint.
Germans: Being totally encircled the germans try to hold their position as long as possible. Historical Outcome: Being low on ammo and fuel the remnants of the german troops fight very hard but cannot resist the superiority of the allied forces.
Instructions: This is the last scenario in Normandy. Therefore I suggest that when the german player managed to withstand for a certain time he has the possibility to abandon.
Updated 1/10/02 by TB3