Developer Diary 22 – Halted at Metz

September 1944. Hitler’s armies are retreating in disorder after their defeat in the Normandy hedgerows. The Allies keep up the chase across France, but General George Patton’s 3rd US Army is beset by supply difficulties. The Germans finally manage to re-establish a defensive line around the heavily fortified medieval city of Metz. According to orders issued by Hitler, fortress commanders are to hold this position at all costs…

Encouraged by good feedback from our previous post, we decided to start on a series of short trailers about our game mechanics, old and new. The story starts with the 3rd Army actions following the long and bloody stalemate at Metz. It is through a series of coincidences that we are again going on about stragglers (sorry!) but I hope the trailer is worth it for everybody. There is also a lengthy development update at the end of the post, as usual.

Halted at Metz

The Battle of Metz resulted in heavy casualties on both sides, and while the exact German losses remain uncertain, it is known that the 3rd US Army took at least 75.000 prisoners during the operation. For the US forces bogged down in the mud, this created a significant logistical problem, in addition to other hardships.

The scenario starts in November, after weeks of horrific stalemate. The Germans had a moment to regroup and now they’re dug-in. The confluence of rain-swollen rivers of Moselle and Seille creates a natural obstacle to frontal assault and the terrain has all turned to mud. There won’t be any grand sweeping maneuvers here. The battle of Metz will be a slugfest.

The city itself is protected by a deadly network of heavily armed forts with siege guns, some of them complete with medieval moats (that still work perfectly against tanks). The two US divisions shown in the video have the right idea as they go into the attack, trying to outflank the fortification.

Advancing US forces are taking prisoners along the way. If they take enough during one turn, they will provide valuable intel. In this case, the 6th Armored managed to gather that intel, but it’s just more bad news for the 3rd Army: the road to Saarbrücken is heavily guarded by German armor. Airpower could help with this threat, but the weather would need to improve first.

What would you do? Would you wait for air support to deal with the panzers? Order a full frontal attack on Metz? Bypass the city entirely, waiting for lack of supply to catch up with the defenders? With every passing day the industrial production of the Ruhr and the Saar continues contributing to enemy war effort or, in game terms, your prestige sinks lower and lower.

It’s the UI, Stupid

Realistically, most of our time is spent working on the UI. It is simply the most important aspect of a strategy game, period. However great you make the game mechanically, most of the good stuff will remain forever buried unless you make it accessible. With that in mind, we keep adding and streamlining stuff, so here it goes.

 (click for full size)

We have asked the 3rd Army HQ to highlight any bridges that can be blown in this turn. This removes all units from the map for clarity, highlights the bridges, and shows the orange banner in upper right. We’ve found that the banner is often needed. Sometimes via the hotkeys and UI buttons you’ll switch the game to some unknown state and be left wondering: where on earth have my units gone?!

The HQ itself is shown in a pretty basic configuration, with all of its branches at default levels, i.e. not upgraded. This HQ provides the following actions (left to right): bridge repair, bridge destruction, entrenchment, emergency re-supply, suppressive fire, no retreat, deploy and reorg. Actions are then grouped into branches: Force Pool, Intel, Operations, Logistics and Engineering.

The division into branches is inspired by the general staff system used in western militaries: G-1 for personel, G-2 for intel etc. Each HQ can be upgraded differently during the campaign, giving the player some interesting choices about how to adapt to the situation and his own play style. In general, upgrades will provide the HQ with new and advanced actions, such as recon-in-force, security units, etc.

Short Updates

The work continues on many fronts, and I’m never sure how useful are these short updates that I give at the end of my blog posts. Let me know in the comments if you think they are. But first, here is a screenshot of the Italian peninsula from way above. It’s pretty to look at, eh?

(click for full size)

We’ve kept adding more and more workflows of the “bridge destroy” type shown above (and mentioned in Developer Diary 20 to number around 36). To be honest, I’ve lost count of them, but now that we understand how to add them systematically, we just keep adding more wherever we feel it’s needed.

We also started working on a human-readable AI Playbook. To explain: our AI has always been a heuristic one, not the deep learning kind that’s getting all the media coverage lately. We’d translate some part of a player’s thought process into computer code, which we then call a tactic. The job of the AI is to look for tactics that are applicable in any given situation.

The playbook is the next step in our AI development: it’s a human-readable catalog of tactics that is accessible to team members who are not programmers. It took some time to nail the correct format, and I don’t think scenario designers and players will be able to contribute to the playbook directly just yet. It should be a great tool for this though: when the AI programmer and the scenario designer sit down to discuss, they will have a common language to describe what the AI is doing. Even better, they will be able to record any new tactical ideas in a way that’s understandable to both. I expect great things!

At the last minute Daniel has noticed there is a historical error in one of the images in this post. Can you spot it?

The work continues!




This entry was posted in News. Bookmark the permalink.

45 Responses to Developer Diary 22 – Halted at Metz

Leave a Reply

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