Update 75: Surpassing Artifice
Whew this is a big build. There's certainly a lot of line-items down below, but even beyond that this touches tens of thousands of lines of code. There's an ongoing consolidation and simplification of the UI logic that I've been working on, both for my own purposes and to make things easier for modders in the future. Steam Workshop support is coming soon, and I've been tidying up a number of things in advance of that, is one way to look at it.
But even aside from that, this update has some long-requested items in here. You can now build buildings in the curves of roads, for example. Also, mimics are no longer part of your shell company, and now have a ton of agility plus movement speed buffs. (Arguably, the mimics might now make Keanu kind of useless by comparison, but if that happens, he'll need some unique equipment to help him still stand out. But first I want to see how that goes).
The loading speed of the game has been improved, and some minor visual hitches from the UI have been fixed. Plus a long list of other stuff. Enjoy!
If you’ve spent time with Heart of the Machine and want to leave a review, that’d be appreciated. No need to say more than you mean, but if you’ve been meaning to write one, I’d be grateful. Steam reviews carry weight. For a project like this — developed by a single person over many years, every review makes a difference.
Honest thoughts are what matter. Whatever your experience has been, sharing it helps. It’s a powerful way to have your voice heard and contributes to how future patches are prioritized and addressed.
Thanks for reading and for playing.
[expand type=details expanded=false]
Update 75 Changelog
Clarity
- Advance Warning Of Branch Split: Fixed an oversight that was making it so that the two "Prison Observation" contemplations did not properly note that they will end the goal "Is It Justice." They already noted what they would start, but they didn't make it clear they would end this other one.
- Animals Are Not People... Until They Are: Added a new "Combat Kills - Animals" section of the stats window. If you're killing any wildlife, they now log as this rather than logging potentially as killing a human, which was confusing. That said, for purposes of getting "pacifist" achievements, if you're killing raptors or parkour bears or whatever, they still count against you. So while the label is fixed, the behavior for pacifism purposes was already correct.
- Opening Crawl: Rather than showing alien text in the lower right corner during load, it now uses a stylized digital font that shows words in english. This helps to diagnose problems if someone get stuck on loading, thanks to them being able to at least screenshot the text, regardless of whether they speak english or not.
- Reticulating Splines: There are now some extra stages of loading the game that will be logged, in particular if you're being stuck loading prefabs or something unusual like that. Previously those could hang very slowly (in theory) in rare cases where you had a bunch of shaders caching or something, making it look non-responsive. Now it is always definitely responsive.
- Motivation Not Required: In the three projects that talk about your need to build robotic motivator factories, it now notes " (unless in Simplified Economy)" to avoid confusion in those cases. Robotic motivators are not used at all in the simplified economy -- they are not produced, and workers don't include them as part of their costs. So they were not needed, but it could lead people to think they were missing something.
- Metrics You Can Actually Hit: Completely rewrote how the "highest deterrence" and "highest protection" possible calculations are done. These look at actual combinations of real equipment, and take their merits and demerits into consideration, now. This gives you actual numbers to work with in the analysis screen, rather than way-too-optimistic targets.
- What Would You Say You Do Here?: Notably expanded the text on the contemplation partway through Cybercratic ambitions to make it clear why that contemplation is the way forward at a glance, and how that improves your situation given what Vorsiber is doing at the time. The previous text read a bit as a nonsequitur, and not it is clearly a strategic choice in the face of impossible odds.
Quality Of Life
- Longer Save Filenames: The maximum length of savegame names has been increased from 30 to 50 characters.
- Building Near The Corners Of Roads: Improved the collision bounds on roads so that you can now build your own buildings inside the elbows of curves, among other things. Previously, the outer bounding box of the entire road segment was blocked off. I actually put the data for this in place years ago, but never wired up the math until now.
- Can You See Me?: If you have a unit that is cloaked, or which has turned into liquid metal, then the "active border" now shows around the button on the ability bar for these.
- Farsight, Fixed: When you are targeting buildings via far zoom, for things like the slum deconstruction drones or similar, the highlights are now a lot more visbile when you are very far away from them.
Balance
- Capture-To-Rescue: Implemented a long-running user request relating to being able to rescue feral animals with the animal capture drones. That now works, instead of always making you do it via androids.
- Neuraxial Priorities: Changed Neuraxial Subverters to be unable to attack your poor defenseless shell company units. Your shell company units can't respond, so they're now ignored.
- Mimic Reclassification: Mimics are no longer classed as shell company units. It was confusing that they were in the shell company submenu, as they never do anything from there that would be useful specifically for the shell company. This was kind of an old way of thinking for me, before the Armored Executives existed.
- Mimic Stat Buffs: To help mimics stand out a bit more, especially since they are now part of the normal set of units that you can use as part of your defenses or offense, they now have 300 more agility than before, and 200 more argument attack power than before. They also now have a move range of 100, rather than 60. This makes them the most-mobile units you have.
- Consumables Usable When A Unit Is Exhausted: Adjusted the balance of the game so that units that are out of AP can now still use consumables (which themselves don't cost AP).
- Corpos No Longer Hate Feral Animals To An Unnatural Degree: Fixed a hilarious bug that was causing military, Secforce, Corpo, ExoCorp, Space Nation, Syndicate, and Corrupted units to get a bunch of extra aggro on feral wildlife and noncombatants in general. The logic that had a bug was intended for them to prioritize each other as well as homunculi, but it was wrongly also elevating "very low priority targets."
- Reliable Item And Ability Targeting Ranges: The way that items and abilities target units and buildings is now completely different. It now checks the nearest edge of their overall radius, which is how attacks already were set to work. Previously, these were inconsistent with mostly being valid/invalid based on where your mouse was, or where the center of the building/unit was, both of which were very strange when targeting large mechs or buildings.
- Where Is That Stupid Spy!?: If there is something wrong with your international airport, certain international spies will simply meet you somewhere else now, instead.
- Meeting The Spy After The Final Boss: If you have already started or completed a T3 goal, you're now still allowed to meet certain international spies via contemplations.
Performance
- Faster Startup: The startup speed of the game has been improved on a bunch of cpu-side areas. On a machine that is not disk-bound in any way (aka, is already on an NVME SSD that is super-fast and has prefetched the data), this brings the startup time from about 6 seconds down to about 4.3 seconds. On super-fast SSDs that are on a cold start, this brings it down from more like 14 seconds to closer to 11.5 or 12 seconds. For anyone on a slower SSD or an HDD, your primary bottleneck is disk speed and not cpu -- so you will see 1-3 seconds shaved off of your total load time, but your total load time is still going to be 20 seconds on an SSD, etc.
- Lower GC Pressure: The game now uses about 150 MB less "heap memory" in a permanent way, because it's no longer caching xml DOMs in memory anymore. This is a very small amount of memory compared to the overall memory signature of the game, but it's part of the "core managed memory" that the garbage collector has to iterate, and so it cuts that down by about 20%, thus making a number of background activities a bit snappier, especially on slower ram or older cpus.
- Smoother Landing: Adjusted the logic for coming out of the "loading progress" window so that it comes out a lot more smoothly now, rather than jolting in while things are still half preparing to draw. This makes the load experience a lot smoother, visually.
- Fine, I'll Do It Myself: A new ArcenXmlReader has been set up. It's roughly twice as fast as the Microsoft counterpart, largely because it's coded from scratch to do a much more minimal feature set. It also doesn't wrongly eat my newlines.
- Another Small Speed Boost: The internal "reference levels" are now read using the new arcen xml reader, which speeds up their parsing slightly (they were already fast), but in general makes everything more consistent. These have used a custom arcen xml writer for years anyway, so now there's a matching pair.
Mod Readiness / Developer Tools
- A UI Backend Other Programmers Can Actually Read: The game now fully uses a reflection-based UI-emission backend that allows more things to be defined in xml rather than C# when it comes to UIs, and it also makes the code dramatically smaller, and single-scope per window, so that it's easier to read. The UIs were very powerful and something that I was able to edit without much trouble, but for anyone else coming in, they were very alien indeed. This also will make for a faster workflow for me in the future for this or other games.
- Code Suggestions: The game now has a "tell me what code stubs I need, even if the result would be polymorphic" set of code that runs when someone has created new UI xml but has not created the appropriate backing for it, yet. This allows people to quickly hook into the UI system without having to memorize anything or look anything up. Again a productivity-booster that will mainly benefit me, and mainly on future games, but I wanted to have it in place for modders in this game, and also just for generally having a shared back-end shape to stuff.
- Self-Checking For Self-Destructive Habits: Due to the improved parallelism on game load, some of the data tables now have extra rules about how certain shared collections can be written. If a modder or developer messes up with that, it can cause unexpected results. The game now checks for this on a background thread, and lets the modder or developer know what the problem is in a popup, rather than just silently failing. This will even work with large mods that are compiled C#, where I haven't seen the code.
Bugfixes
- One Icon Is Enough, Thanks: The game no longer accidentally puts two "you cannot afford the mental energy" notices next to one another in sprint-based actions.
- Okay, Two Icons In This Case: In cases where it was previously showing that you don't have enough action points in a tooltip, it now shows the number of mental energy required as well, just in case there might be confusion. Two years ago it was literally showing the wrong icon, but that was fixed long ago, and now it shows both icons just for added clarity.
- I Can't Believe Nobody Clicked That Until Recently: Fixed an issue where the goal text being clicked in contemplations would throw an exception. Now it just makes the grumbly "blocked" sound effect, instead.
- Protection From Stalls: Added in some stall protection on the "Making Connections" part of initializing the game. If there is a problem in that -- which there usually should not be, anyway -- it now won't just hang indefinitely. It will instead at least let you know there was an error if there was one, and it will move on after 60 seconds if it absolutely can't progress (this normally takes part of one second, or a couple of seconds at once).
- The One Forbidden Button No Longer Lies: The never-available "Nobody Else Is Suitable" button in one quest no longer claims to end a different goal path if you choose it (because you can never choose it).
- Cybercratic Race Condition: Fixed a longstanding bug where if you clicked fairly rapidly, you could build cyberocracy hubs on the same tile as each other, even though that was not supposed to be possible.
- Biological Mainframes No Longer Phase Through Matter: When calculating if a spot for a new building is valid, it now properly accounts for offcenter pivot-points. This makes it so that you no longer have issues with things like the biological mainframe, hangar, and residential megatowers able to clip into each other if you build them at a certain angle and ratio to one another.
- Further Grammar Pass: Fixed a few minor grammar issues that regular spellcheck could not find, but that a new grammar checker I'm using as part of my custom xml editor was able to locate.
- Erased That First-Show Tooltip Flicker: Finally fixed a longstanding flicker that was happening on the first two frames of when a tooltip was appearing (making it flicker in the upper left). This was made worse in the new ui framework rework I've been doing, and that helped me finally catch and kill it.
- Regular Building Race Condition: Fixed a longstanding issue where if you were clicking really fast with placing buildings, you could put buildings intersecting into one another.
- Buildings Now Realize That They Should Not Clip Through Distant Neighbors: Fixed an issue where if one of your buildings overlapped two map cells, other buildings of yours could be placed to intersect into the half that overlapped outside of the "home" cell of the pre-existing building.
- Rapid Eye Flicker Fix: Fixed another issue where some tooltips would appear at the wrong location for a frame or so before snapping to the correct position.
- Blackmail Proceeds Now Properly In The Ledger: Fixed an issue where when your wealth income was derived from blackmail, it was not properly reflected in the ledger and so it looked like you were losing money.
- Dead Researchers No Longer Ask Questions: Fixed an oversight that could lead to dead AGI researchers asking you to build a cyberocracy. If you don't have at least 2 surviving researchers, then that contemplation no longer shows up.
- Famine Prevention No Longer Requires Enemy Mechs Around: Added in a protection to where the famine-prevention logic was not allowed to happen unless there was an active prisoner drive. In almost all cases, there's always a prisoner drive while there is a famine, but in the event that the prisoner drive was canceled by other means, the famine can still also be canceled independently of that.
- Obscure Way To Crash: Fixed a longstanding bug where if you hammered the F10 button a bunch, and then kept clicking "save and exit," you could actually crash the main menu. It now works as you would expect.
- That Sound! Stop That Sound!: Added another fix for a very rare bug where when you exited the game or loaded a different save from the one you were in, it could play the "intelligence class is falling" sound effect incorrectly.
- Disposed Of Lying Accountant: Fixed a subtle bug in the building-cap math that was determining if you could build more of it or not. One of the methods was essentially using bad math, and it's now consistent with the other methods that are around.
- Improved Speed Of Accountant: Fixed an issue where your internal robotics cap usage was not updated quite as quickly as is ideal, so that fast-clicking should be less likely to let you go over internal robotics cap (and thus immediately have to delete or scrap the thing that you built over cap).
- Format Fix: Fixed an issue where the ledger tooltip footers were not properly inserting the "Left click to" instruction text for their "click to ignore" message.
- Prior Plans Are Now Properly Canceled By Apocalypses: At the moment you trip to the post-final-doom, the game now cancels any outstanding countdown timers that may have been going on. So things like the civil war's resolution, or Vorsiber thinking about something or another, all get canceled rather than happening wrongly belatedly.
- Separated Rare Conjoined Twins In StreetSense: Fixed a rare issue where two separate StreetSense actions could calculate as being on the same building, and thus give differing displays in the list compared to what shows up in the tooltip. This mostly happens in one specific edge case involving military bases, but now splits these apart.
- Removed An Unintentional Mental Energy Trap: If you are above the allowed capacity for captured units, it no longer allows you to try to move them until you resolve that. Previously, it was allowing you to try, but not actually moving (and yet taking your mental energy and also triggering attacks of opportunity). The same fix is now in place for regular mech and vehicle movement. Androids and bulk androids were already correct. [/expand]Full notes here.
What's New In 1.0
If you missed the retrospective of what changed from the start of Early Access to the 1.0 release, you can read that here:
https://steamcommunity.com/ogg/2001070/announcements/detail/538879349212841215
Connect with the Machine
Want to stay in the loop or share your thoughts? Join the conversation across these platforms:
💬 Discord – Best place to share feedback, get direct responses, and to talk about Heart of the Machine. 📜 Reddit – Discuss strategies, share ideas, and exchange tips with the community.
Комментарии 0
Гостевые никнеймы не подтверждают личность. Все комментарии проходят проверку владельцем сайта.
Обсуждение ещё не началось.