### # Balance ### - Reduced compliance gain bonuses in advisor and country leader traits from 0.1 to 0.05. Kamenev will now provide 0.02 compliance bonus as advisor, and 0.05 as country leader. - Reduced weekly stability bonus and replaced weekly war support bonus by a flat one in Stalin's traits. - Slightly reduced weekly War Support and PP gain on Stalinist campaign. Reduced XP gain and Breakthrough bonus on For the Motherland campaign. - Army and Navy Spirit cost adjusted down to 20/35/50 from 25/50/75. Air spirits now all cost 50 air experience. - Naval bases now cost 5000 IC (from 3000), and incur an extra cost of 1000 per additional level. - Air Supply mission fuel costs increased by 50% - Increases hub Max Motorization cost to 80 trucks, from 50 - Democratic government type now confers a bonus of -25% political advisor cost. Several national spirits have been slightly tweaked down to accomodate the possibility of stacking this bonus. - Several historically Allied countries now start with a small amount of Command Power in 1936 (ENG, USA, FRA, HOL) - Relief of Command Army Spirit (democratic only) now reduces Military Advisor PP cost by 50% from 75%, but increases army experience gain factor by 25% - Reduced Dozer Blade entrenchment bonus to 1, from 2 - Several Italian military advisors have had their traits upgraded, pp cost increased, and cp allocation decreased. This change will only be applied to new saves. - Revert " Democratic government type now confers a bonus of -25% political advisor cost. Several national spirits have been slightly tweaked down to accomodate the possibility of stacking this bonus." - Reduced Unternehmen Barbarossa modifier to 10% attack bonus from 15% - Air supply now grants 0.2 supply per plane at 100% mission efficiency, from 1.2 - RK Ostland now releases on controlled territory, not just owned territory. - AA gun 3 now medium weapon, Tanks are now a bit slower, heavys/sh are now more expensive - Removed base equpment conversion modifier, removed conversion modifier from dispersed industry, increased conversion tech time - Modernize Industry national focus (shared baltics) now grants 4 civilian factories, from 5 - Arms Industry National Focus (baltic shared) now grants 4 military factories, from 6 - Arm The Nation national focus (baltic shared) now grants 3 military factories, from 5 - Attract Workers to Capital national focus (baltic shared) now grants 2 civilian factories, from 3 - Defense of our Nation national focus (baltic shared) now grants an additional 10% civilian factory construction speed - reduced CAS ground attack by 2 (approx 20% at tier 1, down to 10% at top tier) - Tank gun techs have moved dates, added SA bonus for SPG - Balance changes to consumer goods bonuses/penalties in the Soviet industrial branch: CG penalty from starting Second Five Year Plan spirit reduced from +10% to +5%. CG bonuses provided by Reorganize the PC of Heavy Industry and Fourth Five Year Plan reduced from -3% to -2%. CG bonus provided by Transformation of Nature reduced from -5% to -3%. - Support tank variants now get -0.95 breakthrough - Increase HA/SA of mutliple tank guns, reduced costs for medium modules, slight increase in medium base speeds - Tank Destroyer brigades are now 2 width (down from 3) - Updated templates for new TD combat width - Removed AA gun component breakthrough modifiers since it is now handled by the battalion - Heavy Tank Destroyer brigades now correctly reduce Breakthrough instead of increasing it - Lowered ground attack values for CAS by 2 points
### # Stability & Performance ### - Fixed a modder CTD related to scripted mapmodes when accessing intel interfaces - Fixed a corner case where AI defensive line generation would slow the game down to a crawl - Fixed OOS caused by bombing buildings with railway guns present - Assigning railway guns to armies will no longer induce a sudden drop in gamespeed performance - Fixed clients sometimes crashing to desktop when host shutdowns in MP games - Fixed 2 different OOS caused by joining/hosting an MP game after doing another playthrough - Fixed CTD when loading mods with messed up adjacency errors
### # UI ### - Manually marking equipment variants as non-obsolete updates the alerts - Fix hourly UI update Breaking transitions between officer corps windows - Capital star icon updates when province changes controller - Fix orders group UI not reflecting the motorization state of units after loading a save - Some minor changes to low supply icons and alerts - When selecting the role for a tank design, the stat modifiers of the associated battalion type are now displayed in the role tooltip. A breakdown of battalion, doctrine and tech modifiers for each stat are also displayed in the stats table tooltips. ### # AI ### - Fix AI rail upgrade issuing redundant upgrade commands - RWG slightly afraid of provinces under attack - Soviet Union will now aim to build a decent civilian factory base before switching to other priorities - Railway guns should now have better positioning - Removed obsolete Soviet AI strategies. Old AI strategy to antagonize Finland is now enabled by the appropriate focus. - stop ENG from build too many civs - fixed templates for ENG to prevent issues with tank design templates - bump ai build prio on disconnected supply nodes - Field strength training threshold also factors in divisions in training. This prevents AI fro stacking up a huge list of divisions that are all out of equipment. - Fix various bugs with how AI checked manpower for exiled divisions in training - Updated German templates to correctly use motorized - Soviet should now not get stuck in a spiral of decision spending when they desperately needs manpower laws - USA should no longer fail to produce a usable infantry template - usa should now prioritize getting a m. tank design working faster - soviet should now avoid justifying on targets where it can push its ultimatum - AI is more conservative about implementing no_garrison law if resistance target will raise too much - Impassable provinces will no longer be seen as land connections by the AI military strategists - Japan slightly less keen to squash China while at war with USA - Fixed template target widths for sov and ger AT divs, reduce ger at div to 1 line AT gun ### # Modding ### - Can now use decision as target for pp_spend_priority strategy to block spending completely on decisions - Documentation has been updated to reflect Barbarossa changes - Fix remove_ideas_with_trait so that it works with advisors too ### # Database ### - The Superior Warmachines focus in the Soviet tree is now available for players without NSB ### # Bugfix ### - Remove German claim on Katowice if Poland cedes Danzig as indicated in the Polish tooltip. - Make sure there is no duplicate of user name in player_countries in save file. This avoids any confusion when determining if the country is human or AI controlled. - The Japanese Torpedo Cruiser focus now displays the correct art when finished - Added missing trigger to the Sabotage Behind Enemy Line focus - Give Inter-War medium and heavy tank designs proper default names. - When a character is added to a country and they are already in the retired character list, remove them from this list. also when setting character in scope, keep the country as well. - Kurdish liberation unit spawned in Atlanta, should be Batman - Fix to make Japan less likely to turn the Russian Provisional Government Fascist after making it a puppet through the Request Imperial Protection focus - Allow field marshals to be assigned the advisor roles of generals - when copying characters, copy also the flags attached to them - Adjusted the changes in Party Popularity in the Portugese focus 'The Return of Duarte' so it matches the tooltip. - Fix is_dynamic_country trigger that was not calling the right function - Fixed incorrect image link in between the seas event - When portraits are invalid, pick a random portrait for live version (keep using placeholder for debug) - Replaced old tech speed bonus effect for doctrines in the generic focus Flexible Navy by the new doctrine cost reduction bonus effect. - Fixed CTD that would sometimes occur in multiplayer when viewing air combat in a region as another player hot joins the game. - AI less hesitant at reassigning divisions (fixes a bunch of bugs) - Estonia and Latvia no longer get negative national spirits from NSB when not using the DLC - Latvia now get the correct country leader when not using the No Step Back DLC - Subject states can now create some of the formables in the Soviet Union - Fixed wrong positioning of dynamic modifiers in the National Spirits tab when using the small version. - Added loc for two non-MTG naval techs that may be granted to Soviets in their focus tree. - Baltic focus Technology Sharing will no longer be bypassed to prevent Baltic countries to get stuck with 4 research slots. Baltic research sharing group will no longer be formed if it already exists. - Trotsky will now enjoy an up-to-date trait for his Army Chief role in Mexico. - Balance changes to Soviet national spirit Desperate Measures to prevent Soviets from insta-deploying divs while active (in combination with Mass Assault Doctrine) - Implemented alternative tooltip in Soviet focus National Academies of Sciences for non-Soviet Soviets. - Soviet generals with new portraits will now use the small version of their new portraits for their advisor roles. - Baltic shared designers no longer appear in their lists without No Step Back - When using auto design in the tank designer the resulting design will now always be valid. - The Polish national focus "Expand the University of Warsaw" will now properly count owned factories. - More stable AI behavior when a naval invasion fails - AI will no longer try invading provinces outside target area - Naval invasion arrow will point to the first targeted province instead of the last - Single-character purges will now use the character list tooltip implemented for larger purges, so that their roles, traits and level are shown in the purge event tooltip. - Remove preferred tactic if it becomes invalid - When designing tanks the AI will not install more modules of the same category than is allowed, which will help the US among others to field tanks. - Soviet focuses Improve the Stalin Line, Far East Fortification and Impregnable Forts will now require full control of at least one of the states in which forts will be built. Protect the White Sea-Baltic Canal focus requires full control of all the relevant states. - Removed obsolete Soviet Alternate plan. Fixed Left Opposition plans never being selected on random. - Manchukuo no longer becomes a Japanese Communist Puppet when the Japanese Civil War starts - Focuses should no longer cancel a few hours before the Soviet Civil War starts - Fixed tooltip in German focus Treaty with the USSR. Germany will now get armor tech bonus regardless of having researched basic medium tanks or not. - Korea now controls provinces when released after Japanese surrender to China. - AI no longer using trade to determine naval access - For characters and parties, do not store the translated name, store the loc keys instead. This avoids OOS when 2 players use different langages. - Zhang Xueling now has the correct portrait when promoted to advisor role - Fixed issue where Estonia couldn't start decisions for marching on Finland if Estonia started their fascist civil war while they were marching on an Estonian state. - For most tank designs the AI will no longer install multiple smoke launchers, secondary turret, or additional machine gun. - No more free Baltic trees after winning civil wars without NSB DLC - Fixed insta-win/lose the Soviet Civil War if DLC No Step Back is not active and both sides in the civil war are communist. - Fixed certain Soviet decisions with did not really cost the intended CP and PP - If a trait for unit leader is already assigned, then do not consider it assignable. This fixes the alert being displayed when the player cannot actually assign new traits. - British Malaya and Dutch East Indies now get the correct leaders from start - Lithuania can no longer get Poland into a Personal Union without Lithuania being fully independent. - Fixed the wrong Bulgarian deomcratic leader appearing with BftB - Fixed missing portrait for mexican advisors Othón P. Blanco Núñez de Cáceres and Antonio Cárdenas Rodríguez - Danzig Decisions are now available without No Step Back - Mexico Characters Dionisio Encina, Valentín Campa and Jesús Degollado Guízar now become party leaders when their respective events trigger. - Fixed missing Spanish political advisors and one chief of army when LaR was not active. - Fixed some decisions in Lithuania, Poland and Estonia where it was possible to start them without the required available civilian factories. - Fixed several mismatches in the Tutorial texts in Portuguese and Polish. - Beriya is not Stalin, therefore he can no longer access Stalin's Cult of Personality. - Fixed tooltip in Soviet focus Increase Aircraft Production. The player doesn't need to know about the weird stuff that is going on behind the scenes. - Fixed an issue where units could get stuck in exile - Italy now starts with the appropriate focuses completed in the 1939 bookmark. - Adding missing Loc for POL Danzig resistance modifier. - Changing the name of a State Modifier in SOV so it doesn't get the description from the decision with the same name and show an untranslated loc. - added missing detailed description for supply mapmode. - Trotsky can now be properly assassinated even when the player deactivates the News Events popup - Communist China will now respect their decision to accept the tribute increasement for at least 90 days. - Fixed monarchist decisions in Poland and Lithuania so they cannot make other countries into Personal Unions if they're puppets of another country. - Fixed wrong event being sent back to the Soviet Union resulting in Stalin refusing his own demands. - Spain will no longer conspire against their Soviet overlord after losing their War of Independence. - Adjusted the effect for the Sanation Right irritation so when it's meant to increase over 4 and it's AI Non-historical it just keeps the spirit but when it's the player, a civil war starts. - Changed the Dutch focus Wilhelminism so it bypasses when The Netherlands and Germany are in a faction and both have Non-Aligned Governments. - Changing Neutrality and Fascism drift of Lithuanian advisor from positive to negative to make it match the historical character. - Adjusting Soviet decision 'The Enemy is Treacherous' so it's not visible when the player doesn't have La Resistance. - Added missing focus to the Polish historical AI plan. Danzig or War will now remove POL-LIT guarantee - Adjusting the True Enemy event for the baltic countries so it places forts in the correct provinces. - Fixed Kazim Orbay's multiple problems. - Fixed issue where Lithuania can continue boosting monarchist support in Poland even after they have a king. Other adjustments to these decisions. - Changes to Romanian ideas so they transfer correctly when Poland triggers a civil war in Romania - Made Vapsid Marches in Estonia and Finland not visible after they're completed regardless of ideology. Also adjusted the balance of one of the Estonian marches - Fix of dlc and non-dlc portraits from WTT for MAN and CHI - The Montreux Convention event chain now allows and blocks the appropriate countries depending on the results of the events. - Fix civil war effect posing messages without updating country names - Fix various supply map/volunteer UI issues - Poland now starts with embargoed economy in 1939 as they haven't completed the focus to remove it yet - Fix replacing template companies costing double - Fix Government in Exile supply hubs not connecting to allied supply before they controled enough territory to be assigned a capital - Fix building conversion double counting slot consumption while being built - Made the Polish Decision Categories for dealing with the Peasant Strike, Sanation and Inviting Foreign Motors be available without No Step Back - Leadership of the Axis now remains with the German Reich when civil war starts - Fix AI not assigned requested units to naval invasion armies, which could leave them idle wherever they happened to be standing - Fixed the Wilhelmina idea so it has the correct portrait. - fixed an issue where French and Japanese Heavy tank chassis icons were in the wrong spot in the tech tree - Adjusted the Iron Wolf appeasement decisions in Lithuania so it's not as easy to get locked out of the rest of the branch. - Puppeted Russia can now take Pacify the Rim focus even if they have sold Vladivostok, making it possible to progress to the independence war focus. - Fix river supply connections sometimes getting absurd boosts to supply flow - a number of triggers were broken due to translated character names not registering correctly. These have been fixed. This should only affect non-English players (Russian in particular). - Removed condition from the Bring Old Trotskyists Back focus to stop players from sometimes getting locked out of the Permanent Revolution section of the Left Opposition focus tree. - Improved AI weights for Prospecting decisions. - Baltic AI will no longer reject Soviet ultimatum on historical due to a major country guaranteeing them. - Added missing Soviet focuses to 1939 Bookmark - Focuses and decisions will now work correctly when checking for a character that has a different name spelling in non-english - Volunteers will no longer be lost when returning - Russia can now properly form the Pan-slavic union - The AI will no longer cheat and try to use Military Spirits if No Step Back is not enabled - Fixed issue where exiled characters didn't return after a successful coup - Translate localization key for all character name, not just unit leaders - In the tank designer, the top/default entry in the model selection list is now the expected one for super heavy, modern and amphibious chassis. - The tank model displayed in the tech details view is now of the expected tech level. - Comintern is now dissolved when starting the Soviet civil war - Fix rare crash where logistics strike targetted consumer whose cached status was invalid - Fix PREV (etc) keyword when it references a character. - Super heavy and modern tank designs will now get a proper default icon when playing with NSB active. - Missing glyphs for Turkish and Latvian names are now back. Also fixed non-breaking spaces showing up as '?' in French and Russian translations. - Units in naval transfer will no longer trigger 'low supply' theater alert - Poland is no longer able to complete the April Constitution while being a puppet - Fallback lines now work correctly for volunteers - Yoshiko Kawashima uses correct picture when being a general when having the WTT dlc - Fixed several issues with Soviet and Russian national spirits in the Russian civil war, such as spirits being added to the wrong side, not providing the intended modifiers or being duplicated. - Fixed error spam about missing 3d assets for axis tanks - Fixed issues in Poland and the Baltics where they could annex or puppet a player's country without warning. - Fixed exploit by adding another exploit - Fixed create_country_leader where the created character would have a random name rather than the input one. - With NSB active, equipment conversion is now possible between any tank designs based on the same chassis. It's however not possible to convert tanks to self-propelled variants of a higher tech level as is possible with NSB inactive. - Vehicles like tanks will now be able to draw and refuel during the invasion step while landing - Fix calculation of num_units and num_battle_plans for unit leaders - Fix for focuses being locked for Romanov branch. - Added extra building slots to certain focuses providing factories or dockyards in the Polish, French and Soviet focus trees. - Fixed Georgios Kosmidis not becoming the fascist leader in the appropriate Greek event. - Controlling slovakia will now allow poland to bypass either of the Demand Slovakia focuses - Cag night fighting acronym now correctly capitalized - fix some allied supply issues - Empire of Brazil will no longer embrace fascism. - Democratic Germany focuses no longer invite foreign subjects to faction, causing subjects to lose subject status - Corgis are not people with a mustache and a tie. - Both Australian and New Zealand volunteers National Spirits will now reduce required world tension and required divisions to send volunteers. - Improved triggers for Iberian Summit decisions. - Fixed issue where Polish regent would be retired after capitulation. - Dynamic Modifiers and Weather modifiers now apply to CAS ground attack stats - Fixed news of an Anarchist uprising spreading, despite said uprising not having materialized. Anarchists should now no longer be all talk, no action. - Fixed research exploit - Corrected pre-SCW division counter values in the preparation phase, to properly reflect the reality of unit counts for each side once the SCW begins. - Fixed an OOS when starting a MP game after returning to menu from another game - Added back in the option to rename equipment variants of types lacking upgrades like Artillery and Convoys. - Seek a Defensive Pact with Allies News event no longer has Stalin in it if he is no longer the leader of the Soviet union - Naval spotting speed is no longer scaled by ... naval base repair speed(?), and spotting speed bonuses no longer increase the speed at which you lose a fleet - Fixed missing portraits in Baltics and Poland when playing without No Step Back enabled - The first tank design for each specialized role can now be modified instead of automatically being saved as a new design. - Improved AI weights in Lithuanian fascist characters (Voldemaras and Alantas) and added AI weights to Hungarian communist revolutionary (Laszlo Rajk) so that the AI prioritizes these characters when taking the relevant paths. - Fixed capitulation progress requirement for Poland's 'Prepare for the Inevitable' branch. - Soviet ultimatum decisions will no longer be available if the target country is someone else's subject. - Fixed issue where some focuses would not lead to war with the right country if there was more than one Soviet Union or Stalinist Soviet Union didn't exist. - Fixed issue where Polish Focus 'Demand Lithuania' wouldn't get bypassed when it should've - Fixed one cause of CTD on starting nudger with bad map setup (primarily the case in certain map mods) - Fixed scope where we use character scope only when needed, and country scope otherwise - Fixed long party name (short party name was displayed) - In civil war, when copying retired characters from target country to the revolter, skip characters that are actually active in the revolter country. Avoid having the character in a double state of active and retired at the same time, confusing most effects and triggers. - Austria, Belgium and Switzerland now have correct scripted start stability again - Fixed typo in focus Policy of Individual Security - Lev Trotsky now returns to Soviet Union when completing Return Democracy to the Party. - Fixed Placeholder loc in the tutorial in Polish and Portuguese. - Fixed Command Power tooltip losing the names of advisors affecting it when reloading a savegame - Fixed missing assets for german tanks DLC
Fixed - Armor 3D units from previous addons showing in the Tank Designer The expected models can now be selected for tank designs Game executable should be properly signed again READ IN FULL
Greeting Generals! No Step Back is here! With it the Barbarossa patch and a new checksum. 1.11.1 and bf90.
And if you would like to enjoy is in Russian version (This is the one I like more) https://www.youtube.com/watch?v=EUBQBshRB0c Bellow you will find a brief breakdown of what is included in the free patch, and what is in the DLC, the full patch notes can be found here.
If you are finding yourself a little in the woods with all the new content, we produced a short series of tutorials to prime you on all the new mechanics you'll have to deal with in No Step Back, you can watch them, here.
And last but not least the Grandest World War Two game has teamed up with the Greatest World War Two YouTube channel, for a glorious Operation Saturn re-enactment!
An early look at our Patch Notes are available on our forums. Unfortunately, the notes are too large to fit onto steam in this format, an official patch notes post will accompany the release next week.
I will also take this opportunity to point out that as is normal for large updates, saved games from earlier versions will not be compatible with No Step Back. An opt-in rollback to the current live version will be provided when No Step Back and the Barbarossa update launch
Hello, and welcome back to another Dev Diary for Hearts of Iron 4. As we close in on wrapping up this major operation, code-named Barbarossa, before winter falls (the first snow fell in Stockholm this weekend, I am sure it’ll be fine), today we will talk about the new achievements that will be added with the release of No Step Back.
As far as the process is concerned, we usually have an open list of achievement suggestions during the whole DLC development cycle. Near the end of the cycle, we take a vote on what achievements we want to see in the game (after eliminating any that would be technically impossible) and start the process of implementing them and ordering art.
For No Step Back, we started with a list of 49 suggestions, and whittled it down to 20 Achievements:
At least they run on time!: As fascist Italy, have max level railways in all your core states
Not much fun in Stalingrad: As Germany, capitulate the Soviet Union without taking Stalingrad
No more Partitions: As Poland, be independent and ensure that both Germany and the USSR are either in your faction or don’t exist
Habsburgs. Habsburgs everywhere: As Poland, install a Habsburg monarch and be in a faction with another Habsburg monarch.
The Pope? How many Divisions does he have?: As the USSR, take Rome.
This is going to be LIT: As Lithuania, hold the capitals of all of your neighbours
It has my name on it: As any Baltic State, conquer the entire shoreline of the Baltic Sea
This Achievement is Cheesy: As Latvia, form Ostland and occupy Vasterbotten. (n.b.: Vasterbotten is located in Lappland State)
Esti is Scandi: As Estonia, secure Scandinavia (n.b.: Every state in Scandinavia needs to be controlled by Estonia or a Subject of Estonia)
Not a step back!: As the Soviet Union never lose 1 core territory to anyone before 1945
one_step_forward.png One Step Forward: As the Soviet Union, declare war on Poland and Germany before Germany attacks Poland.
The Soviet Onion: As the Soviet Union, have only puppets as neighbors
Crusader Kings III: As Poland, crown a Monarch and capture Jerusalem
The Romanovs laugh last: Restore the Romanovs to the throne and conquer Germany, Hungary, Austria, Czechoslovakia,Turkey, and Bulgaria.
We don’t really like statistics: As the Soviet Union under Stalin, conquer Germany while suffering less than 1 million casualties total
Race for Germany: As the Soviet Union, capitulate Germany after the Fall of France but before the Allies control one German core state
Siberian Tiger: As Tannu Tuva, form Siberia
Just proper gander: As the Soviet Union, activate 30 propaganda campaigns before 1945.
Around Eurasia in 80 days: Have a railroad from Gibraltar to Singapore
Poland Peasant Revolution: As Poland, have the Peasant’s Strike overthrow the government.
That's all from us today! Next week, you will get the Patchnotes for 1.11 Barbarossa (unless we are thrown out of position by a sudden enemy counter-attack).
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...
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 is working hard at running the game on various hardware configurations to give us a more complete picture and perhaps a few suggestion for an updated recommended configuration, as the one you can see on Steam right now dates back from the original release.
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 ingame profiler that could 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:
1936 fresh start, speed 5, Direct 11, vsync off 1943 test save, speed 5, Direct 11, vsync off
As you can see this offers a few metrics that can be collecting 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:
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:
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:
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!
I'm not much of a forum goer, so most of you probably never heard of me, but I am the Art Lead on Hearts of Iron 4.
Today I bring you a rather special Dev Diary. This was prepared for you all by our 2D artist on HoI4 and should give you a glimpse into the work that goes into each new loading screen. We hope that you will all find this to be an interesting and enjoyable read.
Without further ado, I now hand over to the artist.
The loading screen for The Krojanty Battle - An artist's journey
So where does an artist start?
First and foremost, to have a tool to gather the most crucial thing to build an epic looking loading screen is a reference board. The tool that our artist uses is called PureRef. It keeps track of your images and is easy to organize and customize.
And of course, photoshop to draw in. Can’t forget the most important of them all now, can we?
So! The tools are in place, the artist is ready and the prompt lands on their desk, saying “Polish cavalry attacking resting German soldiers early in the morning”. Google time!
You may be familiar with the illustration by Jersy Kossak who specialized in painting military scenes. This was one of the first images that our artist found and immediately banked it in their PureRef for later use.
The myth, the legend, the Krojanty Battle:
It's epic and cool but oh so inaccurate. But it is a start!
Doing some more research led our artist to a reenacting movie about the battle. Of course still not accurate but a great score for poses, mood and composition. They also only had the trailer/making of available to them but that never stops an artist. Screen grab galore took place, no regrets.
Epic light in this one ^
Great references for poses in these^
Of course our artist can’t stick to one source. Time to hit google again and this time they found some more reenacting scenes to add to their growing collection. More poses and epic looking horses ^
With a PureRef filled to the brim with interesting angles, poses and an interesting mood and light our artist now starts to work on something that’s called “Thumbnailing”.
It essentially means that our artist is making quick, easily viewable suggestions for the loading screen depicting a cool looking battle, sketched up with the help and guidance of the reference material they gathered.
Fun fact; the word “thumbnailing” is actually a direct reference to the human thumbnail in size and the word has been used as early as back in the 17th century for small imagery. Kind of gross... kind of accurate, but still.
These are the thumbnails that they did for Podcat and Archangel85 to pick from!
Yes. They are that ugly. Yes they take no time to make, that’s the point. There's a bunch of ways to go about thumbnails and our artist usually use grey scale when doing these. Mostly to be able to tell hierarchy in the scene quickly. For example, the darkest parts are the most visually interesting ones where we want you to look first and the lighter ones are secondary and not as important. Here we also see our artist giving us the A-B-C-D options for easier communication with the team. Pro tip here is always be clear on communication with the team to deliver the most accurate representation you can as well as often showing the progress to steer the illustration in the right direction.
So the Work In Progress phase begins. The first WIP that’ll be shared is the very first “clean” thumbnail that Podcat and Archangel85 together with our artist went for. They choose to change the direction of motion from left to right because that is the way we read as well as adding another rider in the foreground to give visual depth of the image.
Next phase in the WIP series is colours! We wanted the illustration to be time accurate, so what do we know? We know that the cavalry attacked early as heck in the morning. We know the German soldiers were camping near a forest. We know that the cavalry came through it. But what kind of feeling was most interesting/epic? Our artist made two colour variants to choose from: ^ More time accurate with a cooler tone of morning
^ And this one is more romantic/golden hour esque which in the end we went with. This felt more on-style with what we wanted to portray even if the time of day is wrong this feels more HOI.
After working some more with what tone and mood of the illustration should lean towards, our artist start to define some more characters. Right now they are just blurs and blobs as well as straight up photos.
At this stage our artist went in the direction of adding more drama to the background. A new skyline was added with a helping paintover to show direction from HOI’s art lead as well as defining the landscape some more.
In this stage our artist also started to add some more definition of the soldiers who suddenly got multiplied (in the distance you could hear sad artist noises who realized they had bitten off more than they could perhaps chew). But as we say in Swedish “Skam den som ger sig!”
And yes… You saw right. Was that gear time period accurate? Were those crates truly used? What's up with those crazy large tents? Why are they even white? How strange… So yes. Sad artist noises were once more heard as they realized the finds they had collected in their PureRef were indeed inaccurate for the time period. It dawned on them that they had to re-do some stuff. There's a reason why artists live by “kill your darlings”. Sad, but oh so true. But also a very good thing to do! Sometimes you just have to realize that the best way to fix something is to start over. Now this was of course not the case. But still a hefty re-paint was in order.
Thanks to Jamor who so kindly rallied to our artist’s aid, gave them proper reference material and managed to steer clear of an embarrassing illustration. So now we are heading somewhere! The noisy background elements were taken out because it was too distracting which wasn’t entirely the case up until now. Remember the thumbnailing? Yeah those explosions had suddenly stolen the show which was a big no-no. Let the horses be the stars! And in this stage the character got more defined as well as the background getting more painterly.
Well, we finally arrived where it really started to come together! It looks epic, the mood is heroic and you can feel the battle about to happen. This was therefore a time to go back to the beginning, to look at how the other loading screens had been made to maintain an equal feeling and style of rendering to this new piece! Grabbing a bunch of older loading screens our artist studied the brush strokes, textures and colours that had been used.
Aaaan back to the illustration! More textures are now added to mirror the old style as well as adding to the foreground and middle ground as well as details in and around the camp. Some soldiers got new jobs, instead of lying dead someone is now defending the camp and some more soldiers crawl out of the tents. Our artist wanted the feeling of “panic” to be visible in the camp.
Here the decision to actually raise the ground a good chunk to balance the whole image better was taken. And at this stage our artist, together with lead artist and art director, checked the values of the image. Arguably this could have been done much earlier in the process but sometimes you simply forget until it bites you in the ass. Luckily tho it was at least caught! For example, the darkest part of the field kitchen was too dark to match where it stood in the field and our artist had to make it lighter in value to push it back where it belonged in the image.
Not to get in and be TOO technical about what was happening in this stage, in short, our artist checked the contrasts to make them feel believable. The things at the foreground should be the darkest and as further back you go in the image the lighter in value it is. The example with the field kitchen was that it didn’t look believable. The darkest part of it matched the darkest parts of the horse and rider in the foreground and therefore looked off in its position. Flipping a adjustment layer of Black and White on and off helped with a quick overlook of the scene since sometimes colours can deceive. Being able to toggle a grey-scale filter on and off can do wonders and give a new perspective and light to the image.
The final stretch of “last minute fixes”, here we go!! Here our artist started to do those last 10% of the image to take it over the finish line! Fun fact, usually the last 10% are referred to as the longest and most tedious part of an illustration. Here they are adding details and more life to all the characters as well as adjusting and fine-tuning the background and the light in the illustration.
The whole illustration from gathering references to thumbnailing to finally done took approximately 3 weeks, 2 of which were dedicated to be set after each other, while the rest of the remaining days were spread out in between other work our artist had to prioritize.
Our artist sure did an amazing job here and can you believe that this was the first time they ever created such a huge piece of art?! Their usual work on HOI is to create the icons and buttons you like to push and glance at as well as a few portraits here and there so this was indeed a challenge for them. But least to say is that they sure had fun (despite some suffering, but let's be honest… what is an artist if they're not suffering) and enjoyed the challenge and above all the experience the loading screen delivered, and hopefully you’ll agree with them that it looks pretty cool.
And perhaps we’ll see them take on another loading screen again in the future.
But before I let you go, I have a little meme from our artist to you. (artists are artists, not programmers )
-------------------------------------------------------------------------------------------------------------- Now for something completely different.
Portraits + Focuses
Here are a few of the new portraits you can expect to see in No Step Back.
There are plenty more where these came from. ;) Additionally, here is a peek at some upcoming focus and achievement icons:
Well... That's all from us for now, folks. We hope you are all as excited about playing No Step Back as we are to have you play it.
Oh and one last thing:
The No Step Back feature streams are starting this week, with a first look at the new focus trees in action. The first stream is today (Wed 27th) at 16:00 CEST, during the normal HOI weekly stream slot!
Hello, and welcome back to another Dev Diary for No Step back and 1.11 Barbarossa. Today we will be pulling back the veil a bit and show you how modders can affect and use the new features coming in 1.11.
For those of you who do not get unreasonably excited by hearing about new script commands and changes to databases, the long and short of it is this: We made some fundamental changes to the way the game handles some things, which will probably require your favorite mods to spend some time updating. On the flip side, those changes also allow for some exciting possibilities down the line. If you came here hoping for a release date, we must ask you for just a little more patience. We promise the announcement is very close - but not today.
Characters
Probably the biggest change is in how we handle people on the backend (or ponies, for that matter - we do not discriminate). In the current live version, the game has no real concept of a person as a distinct thing. It only knows about country leaders, military leaders, political and military advisors, and operatives. Cases where a country leader could also be a general had to be handled manually, leading to lots of exciting bugs when the country leader was removed but the general was forgotten about and other such cases.
We have overhauled that side of the game from the ground up with the introduction of characters. This should dramatically reduce the amount of potential zombie generals shambling around, which I am sure the non-zombie population will greatly appreciate.
Characters are defined in the common/character folder, and their definitions look like this:
Every character is defined as a container for different roles they can fulfill, like General (corps_commander), Advisor, country leader etc. Due to technical concerns, Operatives remain their own thing. On the character level itself, things like name and gender are handled. This also means that character names can now be localised and you can refer to a character by ID instead of by name (this helps a lot with character names that have non-english characters in them - turns out this broke some triggers and effects).
This also means that if a character is removed from play - say, through a purge - they are automatically removed from all roles that they could have, which makes such systems a lot easier to do script-side. It also means that if we wanted to allow Zhukov to become a country leader, we could simply add a country leader role for him in the character file, like this:
Or we could also add the role later on, via focus, event, decision... like we do here with Beriya:
hat means there is a lot less confusion and duplication of effort necessary when putting a character into a new role, since stuff like portraits, name etc. are already handled. A broken portrait only needs to be fixed in one place instead of five etc.
Once defined, characters are recruited in the country history file in order to be added to the game. As you can see in the first screenshot, you can use visible triggers for unit leaders to ensure they are not shown if you don’t want them to be.
Characters that can potentially become country leaders are made into country leaders using the promote_character effect, like so:
This is a clear departure from the practice in the live version of the game, where you would create a new country leader in that effect. The old script with create_country_leader and other such effects should still be working, but obviously you don’t get any of the advantages of the unified character system.
So let’s talk about some more things you can do with it!
You can set and check character flags for nefarious purposes:
You can change the traits of advisors without having to make a whole new advisor:
You can check if a character is a certain type of character:
You can save the character as a variable to refer to them later, such as spamming debug messages in the console!
Tank Designer
Next, let’s talk a bit about how the tank designer works on the backend. It shares a lot of concepts with the ship designer, such as modules and module slots. It does, however, work a little differently in some other, important aspects.
While the system pretends that there are only a handful of chassis (light, medium, heavy, super-heavy, amphibious, modern), this is not technically true. Instead, the system maintains a whole host of other, dynamically created chassis. This allows us to make sure that tank designs with the tank destroyer role actually go into tank destroyer battalions etc.
However, these dynamic chassis are still generated from the base chassis, so any changes to them will carry over.
The roles are enabled and disabled on individual modules:
For the unlock of new module categories, you can then use this on a module to unlock that category:
Railways
Railways function a little differently from other buildings. While they are technically province buildings like forts, they are in reality closer to a building that connects two provinces. A railway line is effectively a series of two-province connections, and the lowest one in the chain determines the level of the railroad connection between two supply hubs.
To make it easier to change and maintain the historical railway setup, we have added an option to draw railways into the nudger tool, which you can access by using the nudge command in the console.
The railway setup is in the supply menu in the nudger, and you can easily add new railway lines to the existing setup in this way. It took me about a week and a half to do the entire 1936 setup, including tracking down reference maps (with a lot of help from some of our testers).
If you want to add railways through script, you have the build_railway effect. It gives you a lot of options, with the most basic one being to lay out the path one province at a time:
This is obviously a little cumbersome for longer railways, especially if you don’t really care about the exact path. For that, you have the option to define a start and an end province:
The game will then automatically generate a path from one end to the other using advanced neural network-based self-learning algorithms that use blockchain (read: I have no idea how it works but this sounds impressive).
If finding the province is too much work, or if you want to be somewhat dynamic, you can even use start and end states (also note that you can specify what level of connection should be built):
Note that you can’t mix these, so you can’t define a starting province and a target state for example.
There are also corresponding triggers like can_build_railway and has_railway_connection:
The first checks if a railway can be built between two locations, while the other checks if one such connection already exists.
Finally, there is has_railway_level, which checks if the specified state has a railway line in it with the specified level:
Miscellaneous new effects, triggers, modifiers
In addition to the things described above, we have added a number of useful things that some of you might find useful:
Building_cost_factor: a new modifier that affects the construction cost of buildings. This takes the buildings from the 00_buildings file, so it should work with mods that add more buildings.
Core_state scope list, allowing you to run effects and triggers on a country’s core states:
Add_equipment_to_stockpile effect can now take a variant name to ensure that you add the right kind of equipment.
That’s all for today, I hope you enjoyed these little insights and we are all excited about what crazy things you will do with the new tools at your disposal.
Hi all, and welcome back to today’s developer diary!
It can be very easy to get super-focused on details when looking at individual systems or parts of features - something we often tend to do when writing developer diaries. Each week, we’re going to give you an overview of a core system that we’ve so far introduced in parts, and will include all of the changes we’ve made to that system over the course of development, since we first looked at it.
In addition to this, we’ll also take a look at some changes coming to the AI in No Step Back, so if that’s more your jam, feel free to skip to the end ;D
We’ll begin with an overview of the Officer Corps:
This image represents a near-final take on what the office corps screen will look like.
As you can see, the branch chiefs, theorist, and military high command have found their way to the officer corps screen, though for ease of access you may still view and appoint them in the country overview screen like before. This kind of change is the sort of thing that comes up during playtesting - while it made sense to collect similar things together, there was no good reason to change the player’s flow expectations.
The manner in which you’ll appoint advisors has changed a bit. We decided during the officer corps development process, to make a bigger deal out of the advisor ‘level’ (specialist, expert, genius) that all non-theorist advisors possess. In addition to adding a flat command power allocation (reduction of max command power) which is reduced by high advisor ranks, political power costs are raised by having a higher rank advisor.
Branch advisors now grant daily experience gain, meaning stacking your command cadre well is vitally important to the pre-war development of your military. To add to the choices, doctrines now cost experience rather than being something you spend a research line on:
For owners of No Step Back, military branches also possess several specialization options in the form of Military Spirits, which are also unlocked with experience:
We found during development that less was more when it came to creating a tightly balanced set of choices, and we’ve limited the number of options in each category to around six, with each category being strongly themed around Academy, Military Service, and Command.
To add slightly more nuance to choices here, we ensured that several options in each category would be made available based on situational factors - ideology, doctrine branch, and in rare cases, country choice, can all make new choices available.
The most important part of cultivating a strong officer corps, is the ability to give your trusted commanders advisory roles. Commander traits earned in active combat can make your characters eligible for specific advisory roles:
Characters promoted to advisory duties this way will continue to advance their advisory rank as their commander level increases - a highly experienced field commander will grow from specialist to genius over the course of their career.
Lastly, we are introducing the preferred tactics weighting system. This allows you to set a national, field marshal, and commander-level preferred tactic, which will weight the chances of picking said tactic in a combat situation. While the national preferred tactic can be switched out for a cost, selecting a preferred tactic for your commanders and field marshals is something that remains a permanent choice, representing their adherence to a particular doctrinal theory.
Of course, a host of minor changes accompany the officer corps, including new alerts, better resource tooltips, and adding some of this information into intel ledgers for opponent countries.
The AI
And now, on to a topic that is sure not to evoke strong opinions from anybody here: the AI.
During the development of La Resistance, work was begun on adding additional tools through an imgui that allow modders and users to see various internal data. In NSB, a significant amount of time was spent adding to this tooling and providing support for future AI development, as well as laying the groundwork for easier iteration on AI behaviour and more.
One of our new in-game tools for assessing AI font priorities. These tools will be available for modders, who can continue to fine-tune AI for their own needs through the use of strategies and defines. Here, you can see that the AI has evaluated the topmost defense order as desiring a minimum of 7 divisions, an 'ideal' count of 8, and a maximum count of 50. Defense orders tend to fluctuate quite heavily in 'ideal' unit counts: they tend to be quite elastic to make up for units not needed elsewhere.
While much of the work done here was investment for the future, we’ve also made some pretty big changes to the way the AI evaluates where it commits its troops and more.
While it can be hard to indicate objective improvements in terms of AI, there are several key areas we aimed to improve for this release:
Use of specialized divisions - the AI for assigning armor and special forces to appropriate fronts has received some improvement. The practical upshot of this means you ought to see fewer armor divisions assigned to inappropriate orders (garrisons, pure defensive lines etc), and mountaineers used in frontlines that have the right terrain types.
Did I mention the AI likes tanks? Unit weight distribution - combined with the new supply system, the AI evaluation of where to put units has been totally overhauled. In practical terms, this is likely to manifest as seeing the AI commit more troops to defend key areas (ports & coasts), care more about the active supply situation on frontlines, and provide something slightly resembling a defense in depth for their own core territory, even during active frontline pushes elsewhere.
You can see that the AI considers supply carefully when assessing front unit distribution. There are certain circumstances in which the logical supply capacity of a front can be exceeded by the AI - notably when a defensive frontline is facing a numerically superior foe, or when the AI determines that it needs to win a war fast.
Once Moscow has fallen, the supply situation can get pretty dire as you push east.
Naval Invasions - logic for AI naval invasions has seen significant improvement. You should be encountering larger, less frequent naval invasions overall. The Ai will try to take advantage of weak points in coastal defences, and generally be more keen to invade to support theaters. This got so scary we had to turn the new capabilities down several times (of course, these can be tuned back up).
Counters - while it can be difficult to determine a ‘right’ time to switch templates or create a specialized template, we’ve improved logic for majors utilizing specialized divisions such as Tank Destroyers in relevant circumstances. You should see the AI care a little more about what you throw at it.
Buffer Fronts - Several AI strategies now involve the use of buffer fronts. These are specially defined area defense orders which will request a proportion of national divisions to man them. Where these differ from regular garrison orders, is that these fronts will ‘loan’ their unit distribution counts to nearby fronts or invasion orders.
For example, the heatmap below show the distribution of US troops several months prior to Overlord. The troops stationed in Alexandria and the UK are using buffer fronts, which will supply frontlines in europe, in order to avoid having to relocate troops from much further away. Here you can see the (somewhat anachronistic) defense of Greek territory being supplied by the buffer front in Alexandria, which is in turn supplied with divisions from the US mainland (arriving through the Mediterranean).
The locations and weightings of these are instructional only.