Hi everyone and welcome to the last update on the 1.3.3 patch as we are now getting into final testing of it. This is going to be a big diary with guest writing both from @SteelVolt (AI) and @TomaszKowalczyk (tech lead) as well. Grab a cup of the blackest coffee and enjoy!
Industry - resource lack changes
To continue last weeks theme on industry we have a final change: currently production lines can get a max penalty of -80% due to lack of resources. That effectively mean that a resource lack can be combated by just having more available factories. We felt this was both unrealistic and was making resources less important than we wanted for big nations. Penalties due to lack of resource are now instead calculated by each missing resource over multiple lines and steadily get higher until they can actually get -100% penalty.
Quality of life!
As normal with patches its not just bug fixes and balance, we've done a bunch of quality of life improvements, what while small do feel big when playing. Lets go:
- Do you need to start a building construction with top priority? No problem. Now you can CTRL+Click when constructing, so it goes directly to the top of your constructions.
- Now something that should really be there long ago. When selecting a division, it now scrolls the list of the divisions to show them.
- Did you have problems to find all your units in a crowdy war? Now there is a button (right bottom side of the screen) with hotkey 'M' that hides ALL counters except your units.
- Because its sometimes hard to plan ahead over areas where you have little intel we have also added a toggle button to turn off the fog of war effect should you need to to better see terrain etc.
- We invented a revolutionary new thing which we have decided to call a "loading progress bar"
- Do you also have that one friend that is always lagging behind in multiplayer? Got annoyed by the "player lagging behind" message popping up in your face? Now it's an alert. The tooltip explains who is lagging behind and how much. Of course it also automatically disappears when that player catch up.
- To be consistent with air wings, any unassigned divisions now also get an alert. It's super useful, when for example, a friend is sending you expeditionary forces, and you have no idea where the frell they are. Now just click on the alert to toggle through the unassigned divisions!
- Improved naval AI region evaluation and made it better at reacting more efficiently to changing situations.
- Naval AI will now attempt to use strike fleets to aid in coastal land combats if they are not on a mission to aid in a naval combat.
- Made AI better at calculating supply use when deciding how many divisions it can field.
- Added equipment_stockpile ai strategy that lets you affect how much stockpile ai feels it needs
- All nations with many divisions will now attempt to accumulate bigger stockpiles for safety
- Improved deployment AI to manage lines better and improved calculation of desired number of divisions.
- AI will now remove deployment lines for types it has reached its wanted number for.
- Fixed a serious issue where AI would never counter resistance with area defense orders, completely ignoring conquered territory.
- Improved logic for when and whom AI should be lend leasing
- AI is now able to send old equipment as lend lease not just its newest
- AI can now cancel lend leases it can no longer afford or with nations that no longer make sense
- AI should no longer be so happy on naval construction over military when it had also alot of civilian industry
Performance and Optimizations This part is for those interested in code details and technical stuff. Just a warning! We figured fans might be interested in more technical details as well as getting some insight in what the job is like for coders. So let us know if this was interesting or made your brains melt! Now I'm gonna hand the word over to our project tech lead @TomaszKowalczyk: Hi everyone, I'm going to be talking about all the optimization work I did for the patch. We are of course planning to improve it further more in the next patches, however in 1.3.3 the overall speed up is about 14-18%. This may look like not too much, however the main focus was to solve performance "spikes". Those moments when the game literally freezes at a certain moments (usually every 24th hour, when the next day begins). At the very late game date, they were even more annoying than ever. Those I've improved a lot. I was comparing a certain very late save-game, with 1.3.2 and 1.3.3. The first daily tick after hit unpause, in 1.3.2 it took about 4 seconds to advance. In 1.3.3 it was less than ~0.4 sec. Usually we don't share the nitty-gritty technical details, but this time I'm going to write what and why was slowing down the game:
- I reworked a bit of the peace conference code that was computing which country can get what. In a gigantic war, where a major country with lots of territory, have lost, pressing SKIP and SKIP and SKIP all over again, was making the game running slower and slower, until almost freeze. This exists in all peace conferences. Just in small wars, it wasn't that badly noticeable. The problem was in a badly nested code loop. Rewriting them worked like a charm.
- Every time the player click on a navy, and assign the mission in some region(s), the game is doing a "naval path-find" and sends the fleet to go to the necessary area. There was AI logic that wanted to be sure that their fleets were doing the right missions, and it turns out it was spamming "go there", "go there", "go there", while obviously it was enough to tell once. Any kind of path-finding is a pretty complicated and performance heavy thing, but luckily adding a single line of code to stop that solved the problem with the spam!
- The improvements to the supply system was what had the biggest impact. One problem was that plenty of game elements are relying on information about "supplies supported" vs "supplies required". Which is, how many units we can fit in the area before we get the penalty. Every piece of the code that was asking the region "what is the supported and required values?", was recomputing those numbers from scratch. It was asking all units in the area, how high is your supply usage, and how much the region supports (another complicated formula). And it was done hundreds of time by various game elements, in the same computing frame. Instead, I made it so it computes that information only once, and store it in "cached memory". All the game elements now fetch the data directly from cache, which costs almost no performance at all. Another problem in the supply systems was the large amount of units. In the very late game, having lots of divisions is a true problem, as it requires lots of computing power. This time it almost killed the supply system. I did plenty of tricks here to improve it. I had to rewrite the way we compute the supplies consumption in each area. Instead of looking at each province and iterating through all the units, asking them "what is your supply consumption value?", I do it from the other side. Every hour, each unit "reports" the supply consumption at it's location, bumping up the overall value in the region. Sounds like same thing, but not really from the technical side. Thanks to that, I could completely remove the super heavy code loop from the supply system. To be honest, that was the nicest optimization ever. How to optimize the function? Remove it :) There was so many improvements in the supply system that it doesn't really make sense to list them all, so instead as a summary I will say, that previously the supply system was taking about 65% of the computing time in the daily "spikes". Now it's under 6%. :)
- Another big optimization to daily "spikes" involved the part of the AI playing around with the division designer to achieve its desired templates. The fix was quite simple here. I've discovered that whenever we try add/remove/replace the division in any slot, the overall template stats are recomputed. That's heavy. Well, maybe not that much heavy, but they became heavy when all countries in the world try almost all possible combinations, in a single frame pass. Turns out, it was enough to refresh the template stats only once after the AI is done filling all the slots.
- There was also bunch of optimizations in: AI planning naval invasions, AI code responsible for spreading units along the front, the fleets calculating the bonuses from the radars, convoy routes checking which way to go if the certain channels are blocked, and plenty of other hard to explain improvements.
- There is one last that is my favorite. In our Clausewitz engine, there was an old code loop that nobody ever dared to touch. It was processing all the user interface elements in a "flat manner" instead of the "tree hierarchy". This means, that the more windows and buttons we add to the game, this loop was heavier and heavier. And the windows didn't even had to be shown for it to slow down the game. We always knew about this infamous spot, however reworking it without breaking all the interfaces was nearly impossible. Until now. I found the way! Previously that code loop had ~120 000 passes in each frame, now it's under 700, processing only the necessary interface elements. By that I mean, when you are looking at the technology trees, we are not processing through the hidden production windows and buttons, etc.
[ 2017-02-15 13:42:05 CET ] [ Original post ]
- Hearts of Iron IV Linux [135.44 M]
- Hearts of Iron IV: Sabaton Soundtrack
- Hearts of Iron IV: Together for Victory
- Hearts of Iron IV: Death or Dishonor
- Hearts of Iron IV: Sabaton Soundtrack Vol. 2
- Hearts of Iron IV: Waking the Tiger
- Hearts of Iron IV: Man the Guns
- Unit Pack - Hearts of Iron IV: Axis Armor
- Music - Hearts of Iron IV: Radio Pack
- Hearts of Iron IV: La Résistance
- Unit Pack - Hearts of Iron IV: Allied Armor
- Music - Hearts of Iron IV: Allied Speeches Pack
- Country Pack - Hearts of Iron IV: Battle for the Bosporus
- Unit Pack - Hearts of Iron IV: Eastern Front Planes
- Music - Hearts of Iron IV: Songs of the Eastern Front
- Hearts of Iron IV: No Step Back
- Hearts of Iron IV - DLC Subscription
- Hearts of Iron IV: By Blood Alone
- Hearts of Iron IV: Arms Against Tyranny
- Country Pack - Hearts of Iron IV: Trial of Allegiance
- Hearts of Iron IV: Content Creator Pack - Soviet Union 2D
- Expansion - Hearts of Iron IV: Götterdämmerung
- Hearts of Iron IV: Expansion Pass 1
- Expansion pass 1 Bonus - Hearts of Iron IV: Supporter Pack
- Expansion Pass 1 Bonus - Hearts of Iron IV: Ride of the Valkyries Music
From the heart of the battlefield to the command center, you will guide your nation to glory and wage war, negotiate or invade. You hold the power to tip the very balance of WWII.
It is time to show your ability as the greatest military leader in the world. Will you relive or change history? Will you change the fate of the world by achieving victory at all costs?
Main Features:
- Total strategic war: War is not only won on land, sea and in the air. It’s also achieved in the hearts and minds of men and women.
- Authentic real-time war simulation: Let the greatest commanders of WW2 fight your war with the tools of the time; tanks, planes, ships, guns and newly discovered weapons of mass destruction.
- Assume control of any nation: Choose from the greatest powers striving for victory, or the small nations trying to weather the storm.
- Turn the world into your battlefield: Experience the full WWII timespan in a topographical map complete with seasons, weather and terrain. Snow, mud, storms can be both your strong ally and a ruthless enemy.
- Negotiate or force your will: Experience the advanced politics and diplomacy systems, form factions, engage in trade for resources and appoint ministers to your party.
- Intense Online Combat: Battle in both competitive and cooperative multiplayer for up to 32 players. Featuring cross-platform multiplayer.
- Give your nation a unique edge: Experience the flexible technology system, where all major powers get their own unique identity. Develop detailed historic tanks and planes through research and army experience.
Everyone will receive:
- Poland: United and Ready:
A Free DLC adds a unique focus tree for Poland, new 3d models for tanks and planes, 2d assets, and extra leader portraits for the ultimate in historical accuracy. - Forum Avatar
- Wallpaper
- OS: OS: Ubuntu 20.04
- Processor: Intel Core 2 Quad Q9400 @ 2.66 GHz / AMD Athlon II X4 650 @ 3.20 GHzMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: ATI Radeon HD 5850 or NVIDIA GeForce GTX470 with 1GB VRAM / Latest available proprietary drivers from both manufacturers
- Storage: 2 GB available spaceAdditional Notes: Controller support: 3-button mouse. keyboard. and speakers are required. / Internet Connection or LAN for multiplayer. Up to 32 other players in multiplayer mode.
- OS: OS: Ubuntu 20.04
- Processor: Intel Core i5 750 @ 2.66 GHz / AMD Phenom II X4 955 @ 3.20 GHzMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: ATI Radeon HD 6950 or NVIDIA GeForce GTX570 with 2GB VRAM / Latest available proprietary drivers from both manufacturers
- Storage: 2 GB available spaceAdditional Notes: Controller support: 3-button mouse. keyboard. and speakers are required. / Internet Connection or LAN for multiplayer. Up to 32 other players in multiplayer mode.
[ 6089 ]
[ 3241 ]