• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

HoI4 Dev Diary - A Tech Lead's Life

Hello everyone, it's your favourite (and only) tech lead, The French Paradox!

In this diary I'll tell you more about our tech, give some insights into the programmer's job, what we've been up to for the past year (and some change) and offer you a chance to ask any question you may have about tech.

Saying old platforms goodbye

First, with the upcoming 1.11 patch we will be retiring some old Linux and Mac platforms that aren't maintained by their own developers anymore.
This means that starting next update the minimum OS version to run HoI will be Ubuntu 18.04 (on Linux) and macOS 10.11 (El Capitan) on Mac.
There shouldn't be much to worry about though, as the previous versions are older than HoI itself at this point and our telemetry shows almost all of you have upgraded long ago.
For those on Windows who look anxiously at their aging Windows 7, keep calm and carry on, we have no plans to drop support for it (although as a friendly tech person I'd still suggest you consider upgrading ;)).

Why do we make those decisions you may wonder? Two reasons: one maintaining old tech comes with a cost that we would rather spend on improving the game for 99% of the users, and two sometimes it blocks the adoption of new tech that would make our programmers job easier and more efficient.
Without going too much into details, the general idea is that we can only use tech that is supported on all platforms, so basically we're only as modern as the oldest thing we support. If you take the case of Linux for example, the previous Ubuntu release was from 2016, meaning HoI could not use anything released since then (and probably a bit before, as Ubuntu LTS releases usually don't ship with the latest shiny goodies). Some time we can work our way around it, but not always.
Speaking of new tech...

Renderers.PNG


DirectX 11

That's right, the next HoI4 release will join Stellaris and the other more recent PDS games by adding DirectX 11 support.
DirectX 9 will still be the default for now, but you will be able to select another renderer in the launcher settings.

There shouldn't be any visual difference between DX9 and DX11 (and OpenGL for that matter), we have been working on making sure the experience will be the same.
The game should load a bit faster however, especially if you use a lot of mods that bring extra textures and models.
Working remotely for more than a year, we also noticed less issues playing with remote desktop and the like, which might not be a big deal for most of you but was quite appreciable for our devs during development.
Finally it did help us tweaking & fixing the new railways & trains graphics (as most graphics debugging tools have dropped support for DX9).


Performance

We know that performance is always at the heart of every discussion about our games and as a Tech Lead I have been keeping a close eye on it.
So far it looks like our release candidate is roughly on par with the current 1.10 patch, performance wise.

Why not better, I can already hear you typing? The main reason is that the game on 1.11 is a different beast 1.10 (which itself is quite different from the original 1.0 release).
Namely, the supply simulation is now much more deep and complex, and needs to account for all those railways across the world and the fact that now allies can supply each other.
While I am writing those words, our compatibility lab is working hard at running the game on various hardware configurations to give us a more complete picture and perhaps a few suggestions for an updated recommended configuration, as the one you can see on Steam right now dates back from the original release.


20211103_120703.jpg

Toying with a 11th generation i9 and a RTX 3090. Will it take off?

On the topic of measuring performance, the Barbarossa update will include an in-game profiler that you can use to measure how your machine performs.
You should be able to spawn it from the console using the magic line imgui show profiler.

For example here is the current release candidate on my home i7-10700 with a RTX 2080 SUPER:

hoi4_1936_RC.PNG

1936 fresh start, speed 5, Direct 11, vsync off

hoi4_1943_RC.PNG

1943 test save, speed 5, Direct 11, vsync off

As you can see this offers a few metrics that can be collected by toggling the Enable/Disable Collection button at the top.
A few things you can get from it:
  • Render time: the average time to render one frame over the last second
  • Render time excluding present: same as previous but excludes the time spent waiting on the GPU to actually present the frame on screen. The difference is usually due to vsync.
  • Frames per second: the FPS count, you know this one
  • Ticks per second: how many in-game hours were simulated over the course of the last second
  • Last tick: the time it took to simulate the last hour or new day/week/month
  • Last 24 ticks average: same as previous but averaged from the last 24 (or less depending on how much time was spent collecting data)
Next you have a nice graph representation of where (in which system) that time was spent. We use it to quickly eyeball a performance report, especially when external programmer tools are not available (for example when it happens on a non-dev machine).

Final tip: if the profiler doesn't show up with the magic console command, try turning it off and on again using imgui off then imgui on.


A personal pet peeve

Programmers at PDS are rarely just that. Most of us get involved in the game development by offering insights on design, balance or content, and I am no exception.
So now is the time to talk about French Communism.

If you remember the French focus tree from La Résistance, if you go communist you get this guy:

Momo.PNG


Maurice Thorez was historically the leader of the Parti Communiste Français (PCF).
If you walk through some cities in France you can even find streets bearing his name still today.
But he had one characteristic trait: he was a die-hard Stalinist who followed the Moscow line until his death in 1964. He had a city and an institute named after him in the USSR.
On the day the Molotov-Ribbentrop Pact was signed, he is in vacation in the Alps and the PCF changes its stance on Germany and Poland overnight following Moscow's instructions without asking him. When he comes back, he just shrugs and goes along with it.

With that in mind, I felt that it was weird you would keep him as a leader if you do not go for the "Loyalty To Moscow" sub-tree.
I did some research in French sources and found a better candidate to replace him. Behold:

1635946239203.png


René Nicod was a member of the PCF in 1939, but when the party decided to realign itself following the Pact, he and a couple other MPs quit the party and founded the Union Populaire Française (UPF) or French Popular Union in English. They denounced the Pact and supported the government's decision to stand with Poland.
In Barbarossa if you own La Résistance and go either Anti-Fascist Coalition or Loyalty to the cause you will get a new party and leader:

Tree.PNG
Tree2.PNG


Each branch will give a different flavour of Nicod inspired by his published opinions pieces during the Great War (he both supported in the French Army and lost his hand in the trenches but also denounced the war on ideological grounds and hoped the French and German workers would unite in a common cause).

Finally, it turned out to be a bit difficult to find a good portrait for our artists. My initial research in the French National Assembly online database only yielded a low-res blurry picture.
But luckily a small French shop decided to sell its stock of old photos on eBay and his mayor portrait was one of the articles.
We could have stopped there and used the ad's preview picture as a source, but of course we had to buy and ship to Sweden.

So here he is, looking over the HOI corner in our Stockholm office!


IMG_20211102_203447.jpg

IMG_20211102_203534.jpg
And with that, I'll happily take your questions :cool:

PS: a few back we talked about Modding Changes. @Aurelien Delay looked at your feedback and has more insights to share that should help you convert your mod to the new character system.
 
  • 130Like
  • 26Love
  • 12
  • 4
  • 3
Reactions:

steveh11

Games Player
159 Badges
Jun 9, 2001
2.424
467
www.asstr.org
  • Europa Universalis IV: Res Publica
  • Hearts of Iron III Collection
  • Heir to the Throne
  • Impire
  • Europa Universalis III Complete
  • King Arthur II
  • Knights of Pen and Paper +1 Edition
  • The Kings Crusade
  • Magicka
  • Majesty 2
  • Majesty 2 Collection
  • March of the Eagles
  • Europa Universalis III Complete
  • Hearts of Iron III: Their Finest Hour
  • Victoria: Revolutions
  • Rome Gold
  • Semper Fi
  • Sengoku
  • Ship Simulator Extremes
  • Sword of the Stars
  • Sword of the Stars II
  • Supreme Ruler 2020
  • Teleglitch: Die More Edition
  • Victoria 2
  • Victoria 2: A House Divided
  • Hearts of Iron IV: No Step Back
  • Crusader Kings II: Sword of Islam
  • Ancient Space
  • Arsenal of Democracy
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • A Game of Dwarves
  • Darkest Hour
  • Europa Universalis III
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For The Glory
  • For the Motherland
I've just checked and my DX version is 12... does that mean I'll be able to take advantage of the DX11 support on release, or not? #FormerlyKnowledgeablePerson
 
  • 1
Reactions:

liadal

Sergeant
77 Badges
Oct 12, 2019
72
322
  • Europa Universalis IV: Mandate of Heaven
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Rights of Man
  • Tyranny: Archon Edition
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Hearts of Iron IV: Together for Victory
  • Crusader Kings II: Monks and Mystics
  • Age of Wonders: Planetfall Deluxe edition
  • Stellaris
  • BATTLETECH
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Golden Century
  • Europa Universalis IV: Cradle of Civilization
  • Crusader Kings II: Holy Fury
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Europa Universalis IV: Rule Britannia
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Distant Stars
  • Europa Universalis IV: Dharma
  • Age of Wonders: Planetfall - Revelations
  • Imperator: Rome - Magna Graecia
  • Age of Wonders: Planetfall Season pass
  • Age of Wonders: Planetfall
  • Hearts of Iron IV: No Step Back
  • Stellaris: Federations
  • BATTLETECH: Season pass
  • BATTLETECH: Heavy Metal
  • Age of Wonders: Planetfall Premium edition
  • Imperator: Rome Deluxe Edition
  • Crusader Kings III
  • Europa Universalis IV: Conquest of Paradise
  • Hearts of Iron IV: La Resistance
  • Stellaris: Ancient Relics
  • Victoria: Revolutions
  • Victoria 2
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • Europa Universalis IV: El Dorado
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Cossacks
  • Crusader Kings II: Conclave
Will we ever get revamped focus trees for country that already have gotten DLC (obviously not in this one), a lot of the commonwealth trees are really showing their age.

Poland was a free dlc, and it gets a rework.

Yugoslavia got a large update in BftB. Romania and France get minor updates in NSB.
 
  • 1Like
Reactions:
Jul 7, 2018
17
34
Great job as always. Speaking of new portraits, I was wondering if the team would consider adding Grand Duchess Charlotte of Luxembourg, as the leader of non aligned Luxembourg. I know Luxembourg most likely will never get reworked, but adding the Grand duchess would be great for my role-playing as monarchist. Again keep up the great work!

 

MatRopert

HoI4 Tech Lead
Paradox Staff
2 Badges
May 11, 2018
427
3.426
mropert.github.io
  • Battle for Bosporus
Since Imperator Rome implemented some of CK3 tech like tooltips in tooltips after release, is there a chance for HoI4 to do that? Along with a port of the game to the newest Clausewitz Engine?
Very unlikely. At this point HoI's version of Clausewitz is more than half a decade behind the one used by CK3 and Imperator.
Any change would have to be re-developed for HoI.
Idk if this has been asked yet but is there any plans to bring hoi4 to work natively on the apple silicon chips?
Is Paradox considering making a native version of HOI4 for the M1 Macs at some point in the future at this time? I have one as a productivity machine and tried running HoI 4 on it the other day out of curiosity.
Not at the moment. Mac is already a niche for our userbase, Apple Silicon even more so. Making a native build for an entirely new processor is not something we are likely to do unless the market on PC also follows.
How much more performance is it on normal hardware?
Define normal ;)
 
  • 16
  • 4Like
  • 1Love
Reactions:

MatRopert

HoI4 Tech Lead
Paradox Staff
2 Badges
May 11, 2018
427
3.426
mropert.github.io
  • Battle for Bosporus
I've just checked and my DX version is 12... does that mean I'll be able to take advantage of the DX11 support on release, or not? #FormerlyKnowledgeablePerson
Windows includes several version of DirectX. Most machines today should have 9, 11 and 12. Sometimes 10 too. So no worry there.
are you planning on digitally releasing this picture of réné picot for public use or will you keep it on that white board?
We only own this picture, not the rights to it. I'm not entirely sure those are considered public domain. In any case someone did use the same eBay ad picture on Wikipedia if you want to find it...
Is it true, what I heard from several people, that mines cause lagging in MP games? Or is it just a myth? A programmer should know.
There was a really bad performance spikes with mines. The worst has been fixed in Barbarossa.
 
  • 28
  • 5Love
  • 2Like
Reactions:

Zer00

Second Lieutenant
125 Badges
Sep 2, 2005
152
95
  • Victoria: Revolutions
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Heir to the Throne
  • Europa Universalis III Complete
  • Iron Cross
  • Knights of Pen and Paper +1 Edition
  • Magicka
  • Majesty 2 Collection
  • March of the Eagles
  • Europa Universalis III Complete
  • Naval War: Arctic Circle
  • Europa Universalis IV: Res Publica
  • For the Motherland
  • Europa Universalis: Rome
  • Semper Fi
  • Sengoku
  • Sword of the Stars
  • Sword of the Stars II
  • Supreme Ruler 2020
  • Supreme Ruler: Cold War
  • Teleglitch: Die More Edition
  • Victoria 2
  • Victoria 2: A House Divided
  • Rome: Vae Victis
  • Hearts of Iron IV: No Step Back
  • Crusader Kings II: Sword of Islam
  • Arsenal of Democracy
  • Hearts of Iron II: Armageddon
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Hearts of Iron Anthology
  • Deus Vult
  • East India Company Collection
  • Europa Universalis III
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
Any chance of implementing a Vulkan renderer? I realize that this doesn't automatically mean that the game will run faster but would be nice to have on Linux (and it also works on Windows). Maybe something to keep in mind for the next version of Clausewitz.
 

ThatGuyFromSeinfeld

Second Lieutenant
49 Badges
Oct 30, 2017
164
433
  • Stellaris: Distant Stars
  • Hearts of Iron IV: Together for Victory
  • Steel Division: Normandy 44
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Synthetic Dawn
  • Crusader Kings II: Jade Dragon
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Surviving Mars: Digital Deluxe Edition
  • Crusader Kings II: Monks and Mystics
  • Crusader Kings II: Holy Fury
  • Stellaris: Ancient Relics
  • Hearts of Iron IV: La Resistance
  • Stellaris: Federations
  • Imperator: Rome - Magna Graecia
  • Crusader Kings III
  • Battle for Bosporus
  • Victoria 3 Sign Up
  • Hearts of Iron IV: By Blood Alone
  • Hearts of Iron IV: No Step Back
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV
  • Victoria 2
  • Mount & Blade: With Fire and Sword
  • Crusader Kings II: Way of Life
  • Crusader Kings II: Horse Lords
  • Crusader Kings II: Conclave
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Stellaris
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Hearts of Iron IV: Expansion Pass
  • Imperator: Rome
  • Magicka
  • Stellaris: Megacorp
  • Crusader Kings II
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • Stellaris - Path to Destruction bundle
If France is getting a touch up, could you also please fix all of the foci that give them factories and dockyards? Currently they just give them factories without any building slots which can lead to them having factories go over the building slots limit.
1635951952424.png
 
  • 15Like
  • 8
  • 2
Reactions:

Poliut

Major
53 Badges
Nov 10, 2018
679
648
  • Hearts of Iron IV: Cadet
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Pre-order
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Cossacks
  • Crusader Kings II: Conclave
  • Age of Wonders III
  • Europa Universalis IV: Cradle of Civilization
  • Hearts of Iron IV: Colonel
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Rights of Man
  • Hearts of Iron IV: Together for Victory
  • Crusader Kings II: Monks and Mystics
  • Europa Universalis IV: Mandate of Heaven
  • Hearts of Iron IV: No Step Back
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV
  • Europa Universalis 4: Emperor
  • Battle for Bosporus
  • Crusader Kings III
  • Imperator: Rome - Magna Graecia
  • Hearts of Iron IV: La Resistance
  • Hearts of Iron IV: Expansion Pass
  • Imperator: Rome
  • Imperator: Rome Deluxe Edition
  • Europa Universalis IV: Golden Century
  • Crusader Kings II: Holy Fury
  • Europa Universalis IV: Dharma
  • Europa Universalis IV: Rule Britannia
  • Hearts of Iron IV: Expansion Pass
  • Victoria 2
  • Hearts of Iron IV: By Blood Alone
  • Europa Universalis IV: Mare Nostrum
  • Crusader Kings II
  • Victoria 2: Heart of Darkness
  • Victoria 2: A House Divided
  • Europa Universalis IV: Res Publica
  • Europa Universalis IV: Call to arms event
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Art of War
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: The Republic
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Legacy of Rome
Give us Edouard Daladier back too, need more French Leaders.

Oh and maybe Paul Reynaud since his portrait is already in the game, just barely ever seen.
Part of me wants to see France have its rotating door of leaders just for one playthrough. Just once because it may be merely annoying in following playthroughs, and a mess for the AI.
 
  • 4Like
  • 1
Reactions:

CroarmyZG

Corporal
6 Badges
Dec 10, 2020
37
79
  • Crusader Kings II
  • Crusader Kings II: The Old Gods
  • Hearts of Iron IV: Cadet
  • Age of Wonders III
  • Shadowrun Returns
  • Imperator: Rome Sign Up
Very unlikely. At this point HoI's version of Clausewitz is more than half a decade behind the one used by CK3 and Imperator.
Any change would have to be re-developed for HoI.


Not at the moment. Mac is already a niche for our userbase, Apple Silicon even more so. Making a native build for an entirely new processor is not something we are likely to do unless the market on PC also follows.

Define normal ;)
Cpu around performance of i-5 7 gen and gpu 1050/1050ti/1060/1060ti/rx580. What most people use.
 
  • 1Like
  • 1
Reactions: