Developer Diary 28: Maps and Musings

It’s been a while, but we are officially back and aaaalmost ready with some new content! This time things will get hot before they get very very cold. The good old Eastern Front makes a triumphant return in our upcoming DLC Barbarossa!

Introductions out of the way: I’m Daniel, and I’ve been one of the developers at 2×2 Games for many years by now. My official title is “Games Designer”, but I prefer “Multitasking-monkey”. Has more of a ring to it!

In today’s dev diary I’m gonna be talking about how our unfathomably big map is made and also offer my small input to the ever ongoing “realism debate” within wargames in general. I see no can of worms here, do you?

An Introduction to Map Making

First up the map. Aside from the game engine itself, the map has been (and still is) our most time-consuming task. In fact, by now I’m pretty sure this is the biggest hand-crafted map ever made on this scale for a game in the genre? It’s been such an issue that we actually enlisted someone to help us along last summer: Say hi to Michael everyone! He’s been doing an ever-increasing amount of our map work after going through a long and tough boot camp.

So how come this map thingy is so difficult and time-consuming? Well first of all we strive for 100% historical accuracy! And secondly, if you want a wargame that’s all about supply to play right, then the most important ingredient is the map. And there are some very big pitfalls along the way.

To begin with, we needed to decide which projection to use: because yes, we do in fact live on a globe and this causes distortions when being transferred onto a flat surface. We settled on the transverse Mercator projection which expands the map at its eastern and western extremities (Atlantic and eastern Russia). In other words: this offers a minimum of projection issues within the parts of the map we use.


So far so good. Next, our magician programmer used GIS data to slap the contours of Europe along with a few cities and rivers into the game. And this is our base-line map. It’s empty. Very empty. No hills, no forests, no mountains, no alps, no swamps, no bogs, no forts, no towns, no rail, no roads – almost no nothing. Only a handful of the biggest rivers and cities like the Rhine and Berlin are automatically placed. A good example is seen to the right: that’s Stalingrad and Astrakhan. The next step is to fill it up. By hand! So Grab a shovel!

Join our Six-step Program

Step one: Create reference points.

When you are looking at a blank green map you need to nail down some secure reference points to get started. We managed to find and import a visual tree-density layer directly into the map editor (kindly provided by the European Environment Agency (EEA)). By cross-referencing this with google maps’ satellite layer it is possible to place a few towns and water bodies 100% correctly (taking care that they existed in the 1940s!). Due to the different map rotations and projections in each source, we use later on; these reference points cannot be off by even a single hex. If they are, it will have a cascading effect further down the line and suddenly many days of work can be wasted. (This has totally never happened. And I have certainly never slammed the door and rage quit for a day because of it). Below you see an example of how a single town was placed: Slutsk (stop giggling). Notice the tree lines and how they match up to the location of the town on each map. You’ll have to imagine that the in-game map was just a green blank canvas at this stage.

Tree density layer. More trees = more white

Step two: Add main infrastructure, rivers, and forests

By amalgamating several high res period maps from OKH and the Imperial General Staff we now lay down the main road, rail, and river lines as they were in the 1940s. After this, there is enough content on the map to use the tree density layer to place some of the most heavily forested terrain. Note that white does not simply = forest. Many times heavy tree density can mean hills, swamps, or mountains. But more on this in step three.

OKH 1943


Step three: Add secondary infrastructure, topography, and swamps

By now the map is beginning to look like something recognizable, but there is still much to be done. First up hills and mountains: Using the new content we have placed on the map and combining it with both period situation maps and an interactive topographic map we plop down mountains, hills, and alps as needed. Finally, we add the lesser parts of the infrastructure into the now finished(™) terrain. Mistakes have inevitably happened during these first three steps and these are ironed out along the way…. Lots of re-works.

Imperial General Staff 1942


Step four: Fine-tuning for operations

The map must now be made to “fit” the operations that are going to take place on it throughout the war. For instance, France must work for both the German Blitz in 1940 AND the Allied ditto in 1944. It so happens that the historical operations almost always “followed” the terrain and infrastructure – because of course they did… duh. So if steps 1 through 3 have been done properly, then this step can be overcome relatively quickly. Below is a snippet from Lage Ost 3.7.1941 and the same situation in the game on the finished map. The Germans are racing towards Smolensk while having to deal with huge pockets of tenacious Red Army soldiers. We make sure that these real-life operational situations make sense on our map.

Lage Ost 3.7.1941
In-game situation 3.7.1941

Step five: Prettification and bug fixing

The next step is to make it all look good. Add clutter, avoid hex-shaped treelines and coastlines, fix clipping issues, check for sneaky technical bugs like missing river sides, etc. Fun Fact: those rail lines and roads are super jagged when initially placed and have to be smoothed by hand… almost pixel by pixel. Sadly I can’t show you a picture of the finished beautiful map as this step is the last thing we do!

Step six: Have a beer and a pretzel

This is an extremely simplified version of events. In reality, these steps are mixed up and have a ton of sub-steps and complications like: what defines what is a railroad, paved road, dirt road? Or what defines what is hills, mountains or swamps, etc.? Or the game will stutter if we place too many trees…. what to do…

But I don’t want to bore you with those nitty-gritty details.

Pass the Beer, I’m all out of Pretzels

Finally, let’s open up that can of worms referred to as “Realism”. Because it ties rather neatly into the above map making.

It is hopefully painfully obvious that our map is as “real” as it gets on this scale. However, other types of realism, as they are often striven for, are in my humble opinion an illusion… a mirage… smoke and mirrors. The more “realistic” a game is, the less realistic its results usually are. Because no – the fact that one side had an MG that fired 1200 rpm instead of 600, or some tank had 10mm more armor made zero meaningful difference on an operational or strategic scale. What matters in operational warfare is this: doctrine, supply, numbers, and training/morale. If you abstract these four factors properly and simply “let them loose” on a well-done map, then you get the “realism” almost without trying.

There is also the matter of “desired realism levels” and these are inextricably tied to the fun-factor. Personally, I try to make things as fun as possible without breaking the player’s suspension of disbelief. So I will make sure to use primary sources whenever possible while attempting to always capture the right “feeling” in each scenario. Even if it doesn’t cater to popular myths like “France and the Low Countries were a pushover”. But if balance requires some tweaking of a unit’s strength or an extra specialist – then so be it. It’s a balancing act: Fun vs. Realism.

I used to throw rocks at our screens in the office whenever we were called a “beer and pretzels” wargame because our levels of research and accuracy are as good as it gets in the genre. But as time passed I learned to embrace this misconception, to the point where I’ll now happily wear it as an (ironic) badge of honor. Because there is nothing beer and pretzels about UoC2. Meaningful abstractions over meaningless complexity is our thing. And when all is said and done I think it’s this concept that makes UoC2 uniquely fun and rewarding… and at times also a tad frustrating 😉 Side-note: we are working on some systems to lower the frustration levels slightly.

Let’s wrap this up! I do hope that you will all find countless hours of fun in our upcoming DLC “Barbarossa” – realistic or otherwise. In my humble opinion, it is our best work so far. Hopefully, you will agree, because when all is said and done there is only one judge that matters: you, the player.

Thanks for reading! Thanks for playing! Wash your hands!

This entry was posted in News. Bookmark the permalink.

4 Responses to Developer Diary 28: Maps and Musings

Leave a Reply

Your email address will not be published. Required fields are marked *