Difference between revisions of "HotM:Chapter Two Initial Set"

From Arcen Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 10: Line 10:
 
== 0.594.9 ==
 
== 0.594.9 ==
 
(Not Yet Released)
 
(Not Yet Released)
 +
 +
* Added a new setting: Close Command Mode After Single Deployment
 +
** Normally command mode stays open after you deploy a unit. If you prefer it to close after deployment, use this option. With this option enabled, you can hold Shift to place multiple units at a time.
 +
** Note: now the default behavior is to act like the build menu.  I kept being tripped up by this.  But if you prefer having to hold shift to stay in command mode after deployments, then this new toggle will let you keep that behavior.
 +
** Thanks to Maciej Piernicki for suggesting.
 +
 +
* Certain jobs can now only have one of themselves built at a time.  This is not communicated very well in the interface, but it should block you from building more than one except in spam-clicking situations.
 +
** This applies to the two kinds of safehouses, and the three kinds of AGI-related neural buildings.
 +
 +
* Certain jobs no longer let you scrap them or pause them.
 +
** This applies to the same list of structures above.
 +
 +
=== Chapter 2+ Content ===
 +
 +
<spoiler show="Click Here To Show Spoilers For This Build" hide="Spoilers">
 +
 +
</spoiler>
  
 
== 0.594.8 Hotfix ==
 
== 0.594.8 Hotfix ==

Latest revision as of 17:36, 15 November 2024

Contents

Reporting Bugs

  • Any bugs or requests should go to our mantis bugtracker
    • If you need to submit log files, those can generally be found under your PlayerData/Logs folder in the folder your game is installed in. The most relevant one is called HeartoftheMachineLog.txt. You can send us the whole thing, or just strip out relevant parts.
    • In rare cases, mainly if your entire game crashes (that almost never happens), we will need your unity player log. That gets overwritten the next time you run the game after a crash, unlike the other log. These can be found here:
      • Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\Heart of the Machine\Player.log
      • macOS: ~/Library/Logs/Arcen Games, LLC/Heart of the Machine/Player.log
      • Linux: ~/.config/unity3d/Arcen Games, LLC/Heart of the Machine/Player.log

0.594.9

(Not Yet Released)

  • Added a new setting: Close Command Mode After Single Deployment
    • Normally command mode stays open after you deploy a unit. If you prefer it to close after deployment, use this option. With this option enabled, you can hold Shift to place multiple units at a time.
    • Note: now the default behavior is to act like the build menu. I kept being tripped up by this. But if you prefer having to hold shift to stay in command mode after deployments, then this new toggle will let you keep that behavior.
    • Thanks to Maciej Piernicki for suggesting.
  • Certain jobs can now only have one of themselves built at a time. This is not communicated very well in the interface, but it should block you from building more than one except in spam-clicking situations.
    • This applies to the two kinds of safehouses, and the three kinds of AGI-related neural buildings.
  • Certain jobs no longer let you scrap them or pause them.
    • This applies to the same list of structures above.

Chapter 2+ Content

0.594.8 Hotfix

(Released November 15th, 2024)

  • Fixed a series of issues that were introduced in last night's build with the more-complex alliance-checking causing exceptions when you try to place bulk machine units, and one exception when you try to place a regular machine unit or vehicle. All of these only apply when deploying into range of a potential enemy, or one of your own bulk or captured units.
    • Thanks to mblazewicz and Irl_VriskaSerket for reporting.
  • Fixed a bug in last night's build where humans employed my TMI were paying you to do so, rather than actually costing you money.
    • Thanks to mblazewicz for reporting.

0.594.7 Project Code Refactor

(Released November 15th, 2024)

  • The distinction between minor projects and major projects has been removed, as there was no real meaning to that at this point.
    • Once upon a time, I thought that all major projects would offer players a choice at the level of the project itself. However, as projects evolved, a lot of other ways to execute choices came about -- and also, a lot of times the choice is made before even entering the project. So the distinction was about where you make the choice, which has no meaning to anyone, and calling it out was just strange.
  • Some of the internal code for how project logic is handled has been refactored so that it can accomplish what I want to in my upcoming work. However, this shift is huge and can potentially cause regressions in any project, anywhere in the game, at the moment.
    • I've done a code review, and things look okay, but I may have missed something.
    • Errors will be of the following two types:
      • When there is a project that does not give you the red arrow and ask you to make a choice (formerly called minor projects), then some of them may just randomly spew exceptions when they start. That's a relatively smaller risk.
      • When there is a project that DOES give you the red arrow and ask you to make a choice (formerly called major projects), there might be larger defects. There are comparably few of these, and I've checked the code on them several times, but this was not a small code shift.

Chapter 2+ Content

0.594.6 Shell Companies And Science

(Released November 14th, 2024)

  • Fixed a regression in the prior build where territory control flags would attract enemies relentlessly despite having enough deterrence.
    • This may also have meant that if you paused and then unpaused one of the three new neural AGI-related buildings, that the first wave would not be attracted after unpause.
    • Thanks to Stetc for reporting.
  • Fixed an issue where Scandium was not properly unlocked if you started in chapter two, or were in a new timeline in chapter three.
    • You could still gain it and spend it, but it was not showing in the resource list, or the top bar.
  • The Synthetic units have been renamed to Mimics.
  • Fixed a regression in the prior build that started causing repair spiders to give a double-heal to units inside of vehicles.
    • Thanks to mblazewicz for reporting.
  • The Peacekeeper is no longer unlocked as part of reaching intelligence class 3. You'll have to get it via upcoming means.
    • It's being adjusted a bit so that it now fits with some upcoming shell company adjustments.
  • Once you are past chapter one, it shows the name of the city you are in on the radial menu on every other turn, instead of showing the chapter number only.

Shell Companies Hiring Scientists

  • The Genetics Lab has long been kind of a useless thing in chapter one, and it also was as big freaky metal building that did not make a lot of sense.
    • This building has now been removed from the game, and in chapter one there's not any sort of replacement for this.
  • A new "Seized And Sealed Floors" structure type has been added, which can go in a lot fewer kinds of human buildings.
    • Floors in a building that have been turned into a cleanroom environment suitable for doing a variety of kinds of science.
  • A new "Healthcare Storefront" structure type has been added, which can go in even fewer kinds of human buildings.
    • Often accessible only via internal hallways of larger commercial spaces, this is nonetheless available to foot traffic. Inside is a thoroughly-disinfected space suitable for healthcare.
  • The "Recruit Scientists" event that was previously available starting in chapter one is no longer available in what will be the demo version of the game.
    • There are now two version of this that are available as soon as you have founded a shell company. One for "Recruit Scientists," and one for "Recruit Medical Scientists."
  • There are now 9 scientific professions that you can hire for related to the above two categories:
    • Molecular Geneticists, Zoologists, Botanists, and Bionics Engineers in the former.
    • Physicians, Veterinarians, Forensic Geneticists, Epidemiologists, and Neurologists for the latter.
    • Each of these professions also has a new location that you need to build for them, and in all cases it is related to your shell company and not in any way your machine identity.
      • For physicians in particular, it also notes that these are general practitioners, and that surgery is no longer done by hand, but only via surgical suites.
    • A different number of these is hired per profession, based on the number required to run a typical lab or practice of the relevant sort.
      • They are also owed wages per turn equal to their hiring bonus, and if you can't afford their wages, they immediately depart from your company. One missed payroll and they are immediately gone.
      • For a frame of reference, we are typically talking about the equivalent of tens or hundreds of thousands of dollars (equivalent) for someone who is probably a billionaire (equivalent) before they even think of hiring anyone. Regardless, catastrophic losses of wealth can happen, and your staff all leaves if it does.
  • Some of how the "data calculators" work has been revised to be simpler (for me AND modders!), and to also allow for additions to the logic around damage-dealing or "which resources are relevant right now" logic.
    • As part of this, if you're paying wages to anyone, then you now see wealth as relevant without having to pin it.
  • A new Surgical Suite has been added as a form of internal robotics, which is now required for Veterinary Practices (2), Medical Practice (4), and Bionic Engineering Studios (2).
    • All of the other scientific items continue to require Lab Operator internal robotics.
  • A new achievement has been defined related to hiring every type of scientist at once.

Shell Company Operatives

  • The Bulk Technician has been removed, as it was thoroughly useless, and all of the plans I had for it I kept giving to other units.
  • A new unit called the Senior Technician has been added, which is an actual main style of unit, but has the coloring that the old bulk technicians used to have.
    • This is a more powerful (in some ways) variant that is now tied specifically to your shell company. This means that it can do things that only reflect back on your shell company, rather than seeming tied to your machine tower.
  • Peacekeepers and mimics are also all now tied to your shell company, rather than your tower.
  • Units that are not associated with your tower are no longer able to get into vehicles, since that would give away the association.
    • A lot of them were already pretty fast on foot, but now they are even faster on foot.
  • As soon as you establish a shell company, you now get the Senior Technician.
    • It has a perk that marks it as being explicitly linked to only your shell company, rather than also to your personal identity.
  • Peacekeepers are now in both the "Androids Invented By Humans" and "Androids Invented By AI" collections, even though that is a lie. The humans believe that other humans invented it, though, which is what matters.
    • This means that once you invent them, they are able to do things like go to the licensing agency as a representative of your shell company.
  • The shops can now only be visited by androids which are noted as being shell company operatives, which does not include any of your normal units.
  • As soon as you establish a shell company, you now gain one additional android slot.
    • This is super useful even if you're not going to do something with the shell company, but if you ARE going to do something with the shell company, it means that you are not short one regular operative in order to have a new shell company operative.

Protection vs Deterrence

  • There is a new system called Protection, which is basically the same thing as Deterrence, but it only applies to shell company buildings, and it prevents them from being harassed by federated corporations and criminals.
    • Your units that are related to your shell company now have Protection calculated on them, rather than Deterrence. Your regular units still provide Deterrence like usual, but no protection at all, since again they are seemingly unrelated to your shell company.
    • The main difference between these two is that Protection is provided by units that are blending in, or even that are cloaked, since this involves a bit more than a display of prowess.
  • Units that are blending in now provide deterrence, as that is simpler for players to manage, and not thematically something that I feel is wrong at this point. Units that are cloaked still do not provide any deterrence, even though they do provide both supervision and protection.

Attack Limitations

  • A whole heap of changes have been made to NPC targeting, so that they now differentiate between your shell company operatives and your regular units.
    • This may cause unexpected regressions, but fingers crossed not. In general, when it comes to all existing units, nothing should be particularly different, with the below exceptions.
      • For buildings that are related exclusively to your shell company (right now just the science ones), regular enemies should ignore those entirely, however they feel about you.
      • For your new Senior Technician, it should be utterly ignored by all existing units, and it should also be unable to fire on normal units, with a warning that doing so would blow your cover, in essence.
      • In the next build, there are two other differences that will happen:
        • Some units in new stances that I have not put in yet will be attacking just your shell company, and your shell company operatives CAN attack those, but your regular units cannot without blowing THEIR cover, aka that they are related to your shell company.
        • Some of those units will be allowed to fire on your shell company buildings, while others will not, it depends on the stance.

0.594.5 Military Secrets

(Released November 13th, 2024)

  • Two more achievements have been defined: What's Yours Is Mine and It's People AND Pets!?
    • Thanks to Mintdragon for suggesting.
  • Added two new achievements related to your choices in the introduction.
    • Thanks to arlen_tektolnes for suggesting the Hello World one.
  • There's one new achievement defined related to military secrets.
  • Added another achievement, this one about hunting snipers.
    • Thanks to Glimpse for suggesting it, and Mintdragon for being the inspiration behind it.
  • Extended the "can improve the skill of the specific unit type through StreetSense items related to it" mechanic so that it can also improve arbitrary collections of either unit types or equipment types.
    • The general idea here is that your choices can have a much wider effect on your overall forces, rather than just whichever unit type is directly doing the work. There are a lot of useful cases for both types, so neither replaces the other.

Chapter 2+ Content

Balance And Flow Improvements

  • Fixed an incorrect note in the mining warning text, which said that the amount of deterrence you need goes up each turn. That hasn't been true for a while.
  • Structures that cause a counterattack on build are now way more clear about that in their tooltips.
  • "Area repairs" from technicians and similar no longer help units that are on a dispatch where they seem to be absent (aka, like a Wiretap, or like the new Infiltration type of investigations).
    • Repair spiders now also have this restriction, but now also DO help units riding in vehicles.
  • The "Max Action Points" stat on player units has been renamed to "Action Points Per Turn" to be more clear in its wording when there are upgrades to it.
  • The Neuroweave Factory no longer suggests you build to cap, as that is actually a terrible idea and you need to start scrapping some of them later.
  • There is a new internal feature for jobs, which allows me to have a general baseline suggestion of how many you should build of each, out of context of anything else going on. This is in addition to the existing contextless "try to build them all" feature.
    • This makes the suggestions for aerospace hangars, drone factories, neuroweave factories, and robotic motivator factories all a lot more sensible.
    • I'm sure more improvements can be made here, most notably surrounding slurry spiders vs repair spiders, but that's a thing for after the content sprint.

Bugfixes

  • After making choices in events or contemplations, it should now always have the new StreetSense and Contemplation items on the map without you having to skip a turn for them to appear.
    • I doubt that this helps the case where the vehicle does not show up for grand theft aero until the next turn, as that's a different area of code.
  • Added in a new form of gating on the "spawn units related to an NPC manager" background threads.
    • It is possible that multiple of these could be spawned right at the same time on competing background threads, and that you would then get multiples of the expected intensity of units spawning against you, even including going over the allowed unit caps for those npc units for that event.
    • This was mostly related to npcs that spawn related to an investigation, or some structure you built, or a territory control flag.
    • It now does an interlocked check, which makes it so that, without locks (which can cause deadlocks), there is still a cross-core synchronization pass in the L3 cache, which should prevent this from being able to happen anymore.
      • I've used this technique on AI War 2 for half a decade, and it's very reliable.
      • If I screwed something up and missed a case, then it might still happen through some branch I haven't seen, but a manual code review does not show any cases of that right now.
      • If I later screw up and forget to persist this in a new scheduler path entirely, then it could recur. But I'm not sure I even need to add any new paths, and the existing code models should make it pretty obvious I need to do this thing.
      • If I made some other sort of code error in the shorter term, more akin to a typo, then most likely something won't spawn enemies at all, but it would reset when you loaded another savegame or went to the main menu and back into the game.

0.594.4 Subterfuge

(Released November 12th, 2024)

  • Fixed a bug where the Gristlespinner was increasing the filtered water cap by accident.
  • The small human safehouse no longer costs any food resources.
  • Completing the fugitive-related project in the post-apocalypse now requires you to not just provide housing, but also a certain amount of food and water per turn, which gets executed as a deal, as was seen in chapter one previously.
    • This deal cannot be altered upwards any, as it's not that kind of deal.
    • Thank to mblazewicz for reporting.
  • The first 19 achievements have been defined in xml, but they are not actually hooked up to any logic yet. I will do that in December. For now, I'm working on making sure that they all get defined so that they can be localized.
    • For any players who are curious and want to suggest additional achievements, the file is GameData/Configuration/Achievement/Achievements.xml, and the next three weeks are the period in which to actually get your suggestions in place. This three week period won't be the "forever list" of achievements, but they will be the initial launch set, probably.
  • Added a new cheat called "Big Strategy" which quickly grants all of the strategic resources, for testing.
  • Rebalanced the number of turns it takes to build pretty much everything in the computing category, as it was all annoyingly slow.

Hacking Adjustments

  • In the regular hacking mode (and comms infiltration as well), only the three options (Run, Jump, and Firewall) that are available now are shown.
  • Hacking is now a lot more stealthy, and no longer requires your unit to move in next to their target.
    • Unless your hacker is caught (aka you fail the hacking scenario, versus winning or quitting), they will normally not be marked defective when they are hacking a target. If they corrupt a mech pilot cradle, right now that's the only other case where they are marked defective.
    • Since hackers can once again hang out in vehicles, if they are marked defective, so is the vehicle in which they are riding.
    • Overall, regular hackers needed to be a lot more covert in most situations for balance reasons. This is not a balance issue, since doing anything meaningful costs strategic resources from your hackers.
  • The "probe comms" style of hacking is unchanged, and is seen as hostile immediately. This currently only applies in the post-apocalypse.
  • Mindrunners and Harbingers now automatically have Hack Unit applied to their ability bar, even though they're definitely inferior to the Raven at baseline.
  • Armor plating service panels now cost half as much Wisdom to hack as previously.
  • There was a confusing rule in the hacking minigame, previously, where you could only corrupt things next to you if your number was higher than theirs.
    • For a lot of targets, you couldn't even tell what their number was, so this was just profoundly confusing. This rule has been removed.
  • Bionic Humans can now be hacked, and they have the following new vulnerabilities (none of which reveal your hacker):
    • Augmented Organs (death)
    • Adrenaline Regulator (emotional overload)
    • Augmented Vision (blindness)
    • Bionic Uplink (disconnected from network)

Infiltrations

  • A new kind of investigation is now in place, which is specifically an infiltration. This is kind of a twist on some of the existing deep-examination style of investigations.
  • If an unit of yours is doing an action over time, their health bar is drawn lower so as to be a lot less likely to intersect the "turns remaining indicator."
  • First big expansion of how I use the NPC action logic in a while, with some new units (SecForce Hackers) able to run fully custom logic that also has its own visuals and sound effects, etc.
    • Basically, they're able to search for intruders, which damages an intruder near them if they are not stopped.
    • Their hacking skill minus the intruders agility is the amount of physical damage dealt.
  • Added more extensions so that NPC units can now perform an action immediately in response to being attacked in general, or when being attacked from a player source. This can also differentiate between "general hostile actions" and "actually damaged either physically or morale-based."
    • For SecForce Hackers searching for an intruder, if they have any normal hostile actions taken against them by a player unit or ally (bees thrown on them, etc) or they are attacked by a player unit or ally, they do a much-more-damaging 'sound the alarm' ability which causes a lot more damage to any of your intruders nearby.
      • In general, this makes direct physical attacks against these units very pointless, and actually works against you.
      • However, this is a perfect case where if you have a distraction from a background conflict, none of those people are your allies, and if they were to happen to kill the hackers, then this has no negative effects on you. This is likely to be extremely hard to engineer, and is not the expected approach, but it is at least possible.

Overwatch

  • As soon as you unlock the Mindrunner, you also now unlock the Overwatch ability, which is unrelated to the X-com ability of that same name.
    • Note, it's not possible to get this without cheats prior to chapter three, but you get it immediately on starting chapter 3.
  • There is a new hacking mode called Overwatch, which sees your Mindrunners infiltrating the networks of buildings that your other units are infiltrating in order to give them support.
    • In this mode, every cell is value 10, and there are a lot more obstacles.
    • You only get one shard, and its one ability for now is Move, which is a lot like Jump from the other type of hacking, but only goes up to 5 spaces. The corrupt option here clears walls, allowing you to burrow, and does not destroy your shard.
    • There are security guards that move around at random in this mode, but if you stop within the range they are threatening, they will pounce on you immediately.
  • Using overwatch to help your units does not draw any attention to the unit that is doing the overwatch, same as hacking. Again, unless the unit is caught. There are currently no overwatch actions that reveal the mindrunner.
  • There are now five different things that you can use during an overwatch session, against the building you are in:
    • Halogen Fire Suppression -- clears out all security guards.
      • Does NOT end the overwatch session (only one for which that is true).
    • Security Cameras, Ventilation Fans, and Security Doors.
      • All increase agility by various amounts, as a status effect on the unit in the building, making them more resistant to enemy hackers. You can only do one per overwatch.
      • For all of these, if the corresponding status effect is still on the unit, then that one will be absent from the next overwatch. Each of these last 2-3 turns, randomly. For now they do persist past the end of the actual infiltration, that's something I need to fix in December as a minor thematic thing. Worth a reminder note.
    • False Alarm
      • This gives 200 HP back to the infiltrator, and will only appear in the overwatch session if they have already lost at least 100 HP.

Chapter 2+ Content

0.594.3 Altering The Deal

(Released November 10th, 2024)

  • Deals have been greatly expanded, so that they now can be titrated upwards if you wish (and back down, again, if you wish).
    • If you have an excess of resources where there is a related deal, this allows you to increase how much you are spending on that deal, which also increases any incomes that may be related.
    • The interface for this is a couple of arrows in the inventory screen for each deal, and this also shows your predicted net income (or loss) for each related resource, and if it's a net loss, then it also predicts how many turns your current storage amounts will hold up at this rate of loss. The goal is to allow for all of the meaningful planning of what you can afford from just this interface directly.
  • Deals are also now able to provide players up two boosts to some collections of their units, and the amount of buff that is produced is increased based on the level of the deal the player actually executed on the prior turn.
    • So if you say you want deal level 5, but you can't afford that, but you can afford deal level 3, it will spend at deal level 3 and give you the benefit of deal level 3.
    • All of this still counts as honoring your deal, as long as you can meet at least deal level 1; so if you have a temporary setback in terms of loss of functional buildings, you don't need to come and mess with your deals -- they will fully execute the highest level of deal under what you specified.
  • The chapter one deals now give you bonuses as follows:
    • Greens give you a bonus to argument attack power for technicians.
    • Meat gives you the same but for oxdroids.
    • Canned protein gives you intimidation for all your combat androids, very useful.
    • "Some water" leaves you with more water (of course), and also gives you a bonus to the move range of all your combat androids.
    • "More water" leaves you with less water, but gives you a bonus to the attack range of all your combat androids.
    • These are moderately powerful bonuses, which don't break the game if you ignore them, but they're just enough into that tempting zone to create a mechanical reason to choose unsavory choices, for example.
  • When a project outcome will commit you to a deal, it now shows you what the baseline benefits will be to your units, if there are any. For all of the ones in chapter one, there are some.
  • Fixed a regression in the prior build where as you were loading a savegame, it would briefly flash the world and then the main menu, rather than just showing the loading screen until everything is ready. Now it works as expected.

0.594.2 Memory Efficiency

(Released November 8th, 2024)

  • Improved duplicate detection in the localization framework, which shaves off about 2300 words of otherwise-duplicate words.

More Goals And Paths

  • Two more timeline goals have been added: Bionic Dues and Bionic Secret.
    • Both of these involve machine cults, which a lot of people have been looking forward to, and one involves shell companies as well.
  • All of the relevant timeline goals (the ones where it makes sense) now have separate path bonuses for achieving them on hard or extreme mode.
  • Most of the timeline goals now have a "no murders" path that is optional.
    • It only checks this at the moment of completion of the timeline goal, so if you have already achieved the primary goal, it won't re-check it.
    • Combat kills are not counted in this, nor are "murdered android for registration."
    • This should work now with the Titan post-apoc ending, but I have not tested it.

Clarity

  • The ability to show background conflicts is now a lens filter option on every lens, but it defaults to off except on Versatile (where it was already there and on), and Investigations (where it was neither there previously, nor on of course).
    • Thanks to Mandy for suggesting.
  • Turning on all of the StreetSense items at any given point is now something that is a lens option for all of the different lenses, but it's off by default for all of them except for the actual StreetSense lens itself.
    • Another option for showing only project-related StreetSense items is also available on all of them (except main StreetSense lens), and it is on by default on the following lenses: Versatile, Forces, and Investigations.
    • Thanks to Mandy for suggesting.

Chapter 2+ Content

Bugfixes

  • Fixed a bug that could happen with deprecated cheats or other deprecated items in the long-term log in the end of time. They were not being scrubbed for the log, and would show an exception, instead.
  • Improved the display of which goal paths you have done before, or never before, within an individual timeline, to match what is in the end of time.
  • There are both statistics for your current timeline, and metagame statistics. Previously I was handling it somewhat manually when those are linked, which is true about 95% of the time. This was not a good way to keep handling it.
    • The game now automatically assumes that they are linked unless other specified otherwise. If it tries to cross-link those and finds one missing, it will now complain about it with an error message during gameplay, which won't hurt anything but lets me know to fix it.
    • The short version is that you may see some extra error messages if I made any mistakes, and if so please just report them and they're super easy for me to correct.
    • For QLOC, the other thing to verify is that when you do something like commit some murders, that they properly increase the count in the metagame as well as just in the city.
  • Under extreme load, there was a slight chance of getting an exception in ApplyFinalPhysicalDamageAndStatsAndPopup or ApplyFinalMoraleDamageAndStatsAndPopup. It only was happening before my improvements to the number of particles being spawned during a double-rebel-war cheat, and even then would only happen about 1 out of every 30 thousand shots.
    • I've hardened both of these methods so that this should no longer be possible to happen even in an extremely unlucky circumstance, and I've also improved the logging so that if it ever does, it will say more specifically where in these methods there is a problem.
    • Note to QLOC: you're really not going to be able to replicate this one, even with double or triple rebel war, probably. Don't spend much time on this one.

Memory Leak

  • Reduced the memory pressure from several sources, including how many units and NPCs are in the world.
    • There was some data being tracked on them that players could in theory look at, but it was way too detailed and not something that was anything I think was data a single player even realized was there (stuff like why some stat changed over the last 10 turns on a random NPC unit).
    • This is something I've been waffling about removing for a long time, but with the discovery of a memory leak by several players, this seemed like a good time to remove this since it's useless and taking up memory. That said, it was not the memory leak.
  • Discovered and fixed a massive memory leak in the rendering system for icons.
    • This was an error introduced by myself on April 29th, 2024. So this was not new, and has been in every build of the game since then, including the NextFest Demo and everything else since there have been a lot of testers on the game.
    • The general effect was that the more icons of a certain sort you were seeing, and the higher your framerate was, the faster it would consume infinitely more memory. The longer you left the game running, the faster it would run out. Generally it would take an hour or more to be very significant, but it depends a lot on the player's machine. Someone with an awesome GPU and not too much RAM would be seeing the effect the most, on longer play sessions.
    • This was found, after general user reports of a memory leak, using the custom memory-leak-tracking tools that are in this game and AI War 2. I then verified that there were no other similar problems, and so any other memory leaks would be unrelated to the rendering system itself. Any further problems would be in gameplay, or saving or loading savegames.
    • Thanks to glencoe2004 and Lukas for reporting.
  • Extended my general "cyclical array pool" concept to have a lone version (the old style), and a shared version (the new style).
    • This involves both a pool feeder and a pool consumer, which then is used to create the arrays that are written to the GPU for various shader purpose.
    • The short explanation of this is that it uses less total memory, because it is able to re-use "like arrays" for "unlike shaders," which is highly useful as a render context shifts over time.
    • This in general reduces memory pressure a bit, and probably also has some frame-timing-consistency benefits, but those are expected to be minor. This also allows for easier diagnosis of a certain form of memory leak.
  • An extra layer of protection has been put in against accidentally double-allocating buffers headed for the GPU. If that should happen, the game will now complain. It does not appear that was happening at all, but it's nice to be sure.
    • As part of this, I also happened to notice a really stupid array over-allocation that was wasting a lot (relatively speaking) of memory and processing time. It's... ah... well, okay, it's a few MB. Maybe 6 MB? But it all matters about where the memory is, and this would have put pressure unduly on the L3 and L1 cache, and now it doesn't. So while it was a stupid mistake on my part, years ago, it's not actually a giant performance concern. Still, I found it, so I fixed it.
  • Converted the savegame deserialization process to use recycled and tracked collections, rather than relying on garbage collection to pick up any stragglers.
    • It was a nice idea on my part to let it use the GC to clean up, and worked for a while, but the reality is that it only takes one dangling reference hidden somewhere in otherwise-correct-looking code, and then you get a giant spike of unrelease memory every time the game is loaded.
      • That is in fact what has been happening, in addition to the other kinds of memory leaks I already fixed today.
    • Rather than hunting down this one dangling reference and trying to fix it, which would solve the immediate problem but leave the game forever vulnerable to this sort of mistake in the future by me (or worse, from modders), I have decided to adjust the approach entirely so that it is safe against those sorts of mistakes.
    • There are some new data structures I've created, including a DictionaryOfSharedLists, which allow me to do some tightly-packed object reuse.
    • I've also brought over the ReleaseMemory methods for Lists and Dictionary from AI War 2, which were added after the fork to the HotM codebase. These allow me to have the outer shell of references remain, but dump all of the memory inside them, which is quite powerful.
    • At this point, the game is once again loading savegames despite all the changes, and I can now see the leak directly, but I have yet to quite solve that leak. That's what's next.
  • A lot of dramatic additions have been made to the deserialization logic for the game.
    • There are a lot of data structures that include some lists and dictionaries within them, and these are now pooled (per separate generics type signature), and the pools are reset and have their memory released after load as well.
    • At this point, all of the class data structures involved with loading savegames are permanent and are fully monitored by my anti-memory-leak processes, and for those that have things like sub-lists, they have their memory hollowed out after usage, so that even if there are dangling references, it doesn't matter and they still get garbage collected.
    • The game also explicitly calls for a full garbage collection pass right after the load finishes, which keeps it so that the memory usage is actually lower now after three or four savegame loads than it used to be after just a single savegame load.
    • This finally fixes the second major memory leak that I observed today, after reports from players.
    • Big thanks to glencoe2004 for reporting.
  • Fixed a third memory leak which was related to excessive combat. It wasn't a true memory leak like the other two, but it was still a problem.
    • Essentially, if there were thousands of shots fired in a single turn and thousands of explosions as well (double rebel war cheat spawn as a good extreme benchmark), then these would all enter pools and remain resident in memory in case they were going to be used again.
    • The spawning and retention of all this was actually about 2 GB of RAM usage in this scenario, and it also would tank the framerate to 20fps or lower on my beast of a dev machine, AND it would overdrive the sound channels something fierce.
      • Granted, this is like 10x the volume of combat that anyone should normally ever experience during normal gameplay, but I still was not comfortable with these numbers.
    • The first change I made was to the pooling of the particles themselves. They are now contained in structs rather than classes, and no pool will retain more than 10 particles. The rest are just destroyed, and the RAM is returned.
      • This keeps the memory pressure lower, while making frequent particles still very quick to spawn without having to worry about them being subject to instantiation delays. I also tried a version where I got rid of the pool entirely and it saves maybe 100 MB of RAM in this super extreme case, and performs about the same on my beast of a machine. My theory is that on lower-end hardware the performance would drop some in that circumstance, so for now I'm keeping the smaller pools there.
    • The second change I made was to progressively limit the number of particles that spawn as more are requested when there are already a lot. This is the same improvement that I made to the "giant mechs sliding through buildings" issue, and it works very similarly. It has a chance of spawning that diminishes by a square exponent above a certain level.
      • The end result of this is that the sound channels don't get so overwhelmed, there's still a lot of shots happening (to the point that I can't really tell the difference, even though there are more like 400 particles rather than 4000 playing at once -- it's just hard to judge that kind of shift visually at a glance, turns out), and the performance never drops below 60fps on my beast of a machine, even with this sort of insane scenario. Normally I get more like 110fps on average, so that is still quite a drop, but it's no longer so precipitous.
      • Again, I have to stress how above-normal this scenario is, but these savings wind up passing on to more normal scenarios, and at the same time it also creates less of a difference in what you actually see. This also only applies to NPC units (including bulk units or captured units of yours), not your main units you are paying the most attention to.
    • For most players, I expect that this will never be an optimization that is noticed at all, in terms of lower shots or whatnot, but that things "just work" even in scenarios that are absurd by normal standards. We'll see what happens, but that's my theory.

0.594.1 Polish And Clarity

(Released November 6th, 2024)

Clarity Improvements

  • The way that how many internal robotics are needed, versus how many you have in total and remaining, has been made a lot more clear.
    • Thanks to Mandy for suggesting specifically how.
  • If you fail at hacking, it now erases all of the controls, and shows "Failed. It's Time To Leave" in the upper left, and next to the "Session terminated" message in the log, also says "Exit when Ready."
    • Thanks to Mandy for suggesting.
  • There are two new handbook entries that explain what internal robotics are, and how to get more.
    • These now appear when you first start building freestanding construction, and the "most important tip - hold shift" is demoted to being in the handbook but now popping up on the screen (as that is now all through the interface so much that it is hard to miss it).
    • Thanks to Mandy and Antony for suggesting this, discussing in detail, and editing them.
  • The loadout window no longer saves the changes to your unit type unless you do one of the two things:
    • Explicitly click the commit changes button.
    • Hit the spacebar, while selected on one unit (not unit type) and shift to another unit type.
    • If you hit escape, or right-click out of the window, or hit X, it cancels your changes as you would expect.
    • Thanks to mblazewicz for reporting.
  • Androids and mechs are now shown in two different categories on the forces sidebar, rather than combined.
    • All of the various categories on the forces sidebar now show the number of units you have (or capacity used, when relevant), out of the total of what is available for that category.
    • Thanks to Alias50, B, and Mandy for suggesting.
  • Added a new feature that allows for common-sense protections to be put in place to prevent resource depletion in resource chains where that would be a pain in the rear.
    • Right now, the only resource chain where this applies is Protein Vats, specifically with their usage of Bovine Tissue, since it takes BT to make more BT, and if Vats use it all, then the cycle breaks down.
      • That's not true for any other kind of resource chain at the moment, since they all have a generalized input that is either temporary and meant to be exhausted (Alumina and Computronium Cubes, early on), or has an infinite source (Alumina and things later).
      • For this specific case with the Vats, they will never consume BT that would take your total volume of BT below 5000. This makes them act the same as before, but if you would be on a trajectory to hit zero, you instead hit 5000. This lets you realize your chain is set up wrong, and fix it, without having to also go find more BT from a farm.
    • Thanks to Mandy for suggesting.

Bugfixes

  • Fixed a bug where the streetsense item progress was not being saved into savegames properly when it's related to a project.
    • Thanks to Pingcode for reporting.
  • Fixed a typo in the slum cats text.
    • Thanks to blue_kit_red for reporting.
  • Fixed an issue where the prologue instructions about standby mode were still saying that standby gathers wealth in addition to slurry, when it actually only gathers slurry now.
    • Thanks to Mintdragon and kenken244 for reporting.
  • Fixed an issue where using "Quietly Loot" was causing units who do that to be marked defective, when of course the entire point is that they are not noticed.
    • Thanks to Pingcode and mblazewicz for reporting.
  • Hacking the titan mech like a traditional unit (using hack unit rather than probe comms) should no longer be possible at all. It isn't meant to be vulnerable over the air like that.
    • Thanks to mblazewicz for reporting.
  • Fixed typo in the Sedgesinax cohort description.
    • Thanks to kenken244 for reporting.
  • For all of the food and water projects that have a per-turn-income requirement to complete, it was possible to fill up your bunkers with them and then be unable to complete the projects without building an additional bunker, which was a soft-lock state.
    • If you have at least 1 bunker's worth of the resource (which is absolutely a massive amount), then it will assume that you have enough per-turn income to meet the demand of these projects. You likely have 100+ turns to fix the problem if you are actually somehow short, because of your giant buffer.
    • Thanks to Mandy for reporting.

0.594 Hard And Extreme Modes

(Released November 5th, 2024)

  • When you start a rank 2 city (meaning either a fresh start from chapter two in a new profile, or a new timeline in an existing profile once you get to chapter 3), it now gives you a flat 30 of each of the 6 main strategic resources.
    • This is in some cases more than you would have from going through chapter one to get there, in other cases less, but it averages out to something that does not say anything about this alternate-you's history, and yet gives you enough resources to do some things in early chapter two that are otherwise blocked to you.
    • Thanks to MOREDAKKA and Pingcode for reporting.
  • There is a new "Vandalize Spaceport Computers" contemplation that is available starting in chapter 2.
    • It requires any of your hacker units (in chapter two, that's just Raven. In chapter 3, that's also including Mindrunner, and possibly including Harbinger, depending on if you have some timeline crossover happening).
    • This is only available during the first 20 turns of a timeline, so you can't dawdle on it too long. When you first reach chapter 2 from chapter one, it gives you 20 turns from them. And if you load a timeline that was already in chapter two or three, it gives you a flat 20 turns from where you are now.
    • This gives you two options, a Hard mode (dooms every 40 turns instead of every 100), and an Extreme mode (dooms every 20 turns).
      • I suspect for a lot of people, the comfortable mode will be Hard Mode, which basically gives a good balance of strategic pressure and time to do multiple goals. Extreme Mode is likely only to be fun for existing experts who are trying to optimize their way to specific single goal states, which is fun in its own way, but just more niche.
  • Fixed an issue with contemplation filters showing counts and entries for contemplations that are not actually on the map at the moment. Typically this is because there was nowhere valid for them to seed at the moment, but it can also be based on other conditionals. Seeing categories with nothing in them was quite confusing.
    • Thanks to mblazewicz and Lukas for reporting.

Chapter 2+ Content

0.593.9 Hotfix

(Released November 4th, 2024)

  • Fixed a bug in the prior version where if you cleared all of the hostile contacts in the hacking scenario, then it would jump you to the end of a ton of hacking scenarios and basically end the entire post-apocalypse scenario before you saw half of it.
    • Thanks to Waladil for reporting.

0.593.8 Three

(Released November 3rd, 2024)

  • The "personal apocalypse" goal has been renamed to "Slice Of Inferno," as it was confusing the other way, now that there is an actual apocalypse that is different.
  • Another goal state, "Post-Apocalyptic Titan," has been added alongside the existing "Post-Apocalyptic Burrower."
  • The "burrower" goal state is being cut for time. It will return, but it's a lot less impactful than the titan goal state, and I don't think that this is a good use of my time at the moment compared to the other primary chapter two content.
    • The titan path wound up being essentially twice as large as expected, and way more impactful, so it absorbing the time that would have gone to the burrower one makes a certain amount of sense.
    • I do have the burrower path all mapped out, but it's something I'll do sometime in the next few months. It's a nice alternative to the titan path, but not something I'm in a hurry to have people do in place of the titan.

Balance

  • Nickelbot movement range has been increased from 42 to 60, making them much quicker to traverse long distances.
  • Keanu, Exator, and Carver have all had their move ranges increased from 60 to 80, making them insanely mobile for an android, and fitting with their agility-style nature.
  • Carver now has Shadowdweller instead of Innately Alarming, as that is much more effective for that unit to be useful at all.
  • There is a new Expert Shadowdweller perk that some of the more advanced units have. This works the same as shadowdweller, but allows movement up to clearance 4 rather than clearance 3. It's also a way to provide some different gates on some events.
    • Primarily Exator, Carver, Harbinger, and Mindrunner.
  • The prismatic tungsten event now has a "sneak past" option that only applies to expert shadowdwellers, and has 1000:1 odds of being a success with no cost.
  • CombatUnit hacking skill has been increased from 10 to 70, making them a better hacker than Technicians, which makes sense given their role. They are still objectively terrible hackers, but it's important for some new abilities.

Adjusting Difficulty

  • There is another new handbook entry related to dooms, which talks about adjusting the difficulty of the game by accelerating them.

Framework Bits

  • The system for having units do small things around the map for part of a project is now in place, and it allows costing and gaining resources.
    • This allows for a wide variety of new kinds of mission designs to go in the mix.
  • There is also a related new system that allows for a SINGLE unit (and it's bulk version of itself) to gain some stats in a way that is not related to overall upgrades.
    • These show up in the tooltip for the unit's stat as "Total From Past Project Work," and this is a lot narrower than what you see with other forms of upgrades.
    • For example, you might be improving the Nickelbot on something, but not other Dynadroids (that is possible with the main upgrade system as well, but certainly a lot less common).
    • Perhaps a better example is the CombatUnit versus the CombatUnit Red. The red does not share buffs with the main version, but the main version shares buffs with the bulk version.
      • This could arguably make the red version even less useful, but I think it gives it a chance to specialize in a way that diverges from its main-pair version. I have something special in mind for this, actually.
  • I've added the ability to have fallback seeding options for the new kind of project streetsense stuff, although I wound up not actually using it yet.
  • There is a new "click to micro-nuke" cheat.
    • This cheat is extremely useful for testing "what if certain kinds of buildings did not exist after the final doom?"
    • As an example, I have one project that would only be possible if there happened to be cryogenic centers still remaining in the city. If I go through and scalpel those out with a series of micro-nukes, then can the project still be completed? It's not a guarantee this specific type of structure survives into the post-apocalypse, so there has to be a fallback if the project is definitely going to be the sort of thing that can be completed regardless of the state of the city.
  • The list of cheats is now stable when tabbing back and forth between the streets view and the map view. Previously if you were in a targeting mode, it would lose which mode you were in when you changed back and forth, which was very unhelpful when trying to verify certain things (like "did I get all the cryogenic centers, so no more of that quest marker can spawn at them?").
  • With the "structures with problems" window open, the delete key now properly works to scrap units.
  • In the event that there are no broken machine structures, but that there ARE machine structures that are disconnected from the network, the delete button in the build menu allows you to right-click to delete those instead of the broken ones.
    • This is very relevant for situations where you need to move... a lot of yourself away from where you are. For example if you wind up with the titan uncomfortably close.

Giant-Mech-Related

  • The way that the "can a giant mech step on this" logic works has been expanded a ton. Instead of a binary yes/no answer, it now is a rating system, with progressively larger mechs being allowed to step on progressively more-important things.
    • This makes it so that Stalkers and even more-so Titans have a much easier time moving around, while simply smooshing most things in their way.
  • Added logic so that units can either just destroy things that they step on at their target (this is a lot less destructive), or so that they destroy everything along the path as they move.
    • The Titans now use this latter form of logic.
    • Thanks to KenKen244 for suggesting quite a while back.
  • Added logic so that some NPC units won't show the ghost of where they were last turn. In the case of these units, it's both not helpful, and actively confusing.
    • This is now applied to pretty much all of the NPC mechs, but not any npc vehicles or smaller combatants (npc vehicles move far and fast, and seeing where they were can be super helpful).
  • Added in logic to progressively gate the number of explosions when a mech is blowing up buildings in a path. Visually this makes almost no difference, but basically it keeps it from kneecapping your performance with explosions that would just be a solid mass of overlap, anyhow.
    • If you skip a ton of turns at as fast as possible, AND there are a bunch of NPC mechs that are all moving and exploding buildings every turn, then you'll see some gaps in explosions, but it doesn't cause any drop in the number of buildings they destroy. Beyond that, it doesn't affect anything visually, particularly.
  • Added logic which allows showing excessively large units on the map directly.
    • This is only used for NPC titans at this point. The player-based titans do not do this, nor do any of the other mechs or vehicles of anyone.
  • When the titan is dropped in from orbit, it now actually drops in, with scary horns, and an accelerating fall that suddenly terminates at the bottom (with explosions if it lands on anything explosive, which it usually will), and a screen-shake effect that is not used very often by the game.
  • The ability to spawn a Titan as a player-controlled mech (as opposed to an NPC one) has been removed. There are story shifts that make that... inappropriate.
  • The weapon ports and firing for the titan are all now appropriately set up.

Timeline-Goal-Related

  • There is now fanfare for winning a timeline goal, as there is for winning a project. It has a different sound and different particle effects to make sure it catches your attention.
  • Timeline goals that are now impossible due to how the timeline has progressed now show in red on the goal listing.
  • On the goal listing within a timeline, it now shows how many of the paths to each goal you have achieved in this timeline, out of the total paths available for it.
    • Right now it's just one path at a time.
  • In the goal tooltips, it now also has extra information if you have won the goal or failed it for this timeline.
  • Looking at overall goal history in the end of time, it now shows you how many of the different goal paths you have ever achieved for each goal, out of the total number of goal paths in all related to that goal.
    • When hovering over a specific line item, the tooltip shows how many times you have completed each goal path, or if it has never been completed before, for further information and ideas on what to try next.
  • The older concepts of goal evolutions and perfected timelines have been removed.
    • It now shows instead how many goals you have completed per timeline, and how many goal paths.

Timeline Data Protection

  • Protection has been added for a kind of complicated case with the timelines. Let me attempt to explain, and let's see if the QLOC testers can find any way to break this.
    • First of all, I need to explain the savegame structure a bit:
      • The savegames individually contain both the metagame (cross-timeline) stuff, AND the content for a single timeline. When you load an older save, you are therefore loading an older version of both the metagame and the specific timeline that the save is from.
      • Starting in chapter three, you have the ability to switch back and forth between timelines. This means that it needs to keep the metagame, but get rid of all of the one-timeline data and replace it with something else. Otherwise the savegames would become impossibly large.
        • In other words, if you are in timeline A and that is the only timeline that exists in your metagame, then it's very simple. But as soon as you create timeline B, there is now a fork of sorts.
      • When the savegames are forked in this way, there is a (hidden from the game, but visible in the file system) file with the GUID of the city, and the city data, and an extension of .timeline rather than .save.
        • Specifically, when you have been in timeline A, and you create timeline B, it will save timeline A to GUID-A.timeline, get rid of that data from the current save, keep the metadata from that save, and then generate timeline B inside there. It will then have "first turn in timeline B" as a savegame.
          • If you go back to timeline A's last save, before it created timeline B, then it's like timeline B does not exist. This is fine. You just save-scummed and forked things. I'm okay with this.
          • If you play for a while in timeline B, and progress the metagame, then this is now the most-current data for the metagame, and for timeline B, but the most-current data for timeline A is in the GUID-A.timeline file.
      • In the end of time, you can, from the timeline B file, choose the timeline A node on that map, and choose to dive in. At this point, it will do the following:
        • Save the timeline B stuff to a GUID-B.timeline file.
        • Dump everything timeline-B-specific out of the current save, but keep the metadata.
        • Load the contents of timeline A, from the GUID-A.timeline file.
      • Now you have the most up-to-data metagame data in the new timeline A file, and timeline B is the one that is on ice.
        • You can have tens of thousands of timelines linked this way, so now multiply this out by tens of thousands of files if you want. It doesn't change the math of how this works any.
    • Assuming that the player never save-scums at all, and only ever loads their most-recent savegame they were playing on, and then cross-loads timelines via the end of time map, all is well. There are no real edge cases here in that situation. However, we all know that is not how players will actually do things.
      • The first really bad case is if the player has been playing for a while, and then they go back to a really old save for... let's say timeline B. They started on A, progressed A, went to B, went back to A, progressed A again, and then save-scummed back to an older B file. So far this isn't destructive.
        • But what if they now, from the savegame setup described above, try to use the meta map to load timeline A? What WOULD happen is that the older version of timeline B would overwrite the GUID-B.timeline file, which would negatively affect the actual real "current state of things" if they load back into one of the more current savegames. They would find that the metagame still has the latest information about timeline B, but that when they go into it, it has been overwritten with the much-older version of timeline B's actual contents. Yikes. This is not game-breaking, but it's something I really don't like.
    • The solution for the above problem is that a second file is also written next to the .timeline files. This file is called GUID_Timekeep.timeline, and it has a single integer inside it. That integer is how many seconds have passed in that timeline at the time of it being saved.
      • In the event that the game would try to overwrite the .timeline file because of swapping between timelines, it checks the _Timekeep.timeline number. If it's a higher number than the current number of seconds, it won't let you do this, and it shows a message to that effect. This prevents probably 99% of the degenerate cases I mentioned above.
      • There is a way around this, however. If you loaded an older savegame that was only a few minutes behind, and then played until you passed the older state, then on switching timelines the timekeep comparison would be favorable and it would let you cross over, thus overwriting the timeline file we were trying to protect.
        • I am okay with this edge case, because someone would have had to go REALLY far back and play for a really long time for it to be a problem. In any cases where they go just a bit far back, and then "accidentally" overwrite, it's probably expected that it would overwrite from their perspective.
    • There may be some funky ways to game this system, but if they're suitably hard, I don't care. I don't think the average player has any motivation to try to do something like that which is too difficult to pull off, and my main concern was accidental overwrites when people just wanted to go back in time for a bit and were going to do the overwrite without meaning to.
      • That said, if there are other edge cases that can result in problems, I would like to know. This is not critical in the next week, but I'd like to have it well solved before the 18th or so, if there are any problem cases.
    • One might wonder why I'm not using a chunk-based system like, for example, Minecraft does. This is also the system that I used for the A Valley Without Wind Games.
      • The primary reason is for bug reporting, to be honest. Players being able to send me a single file, and it just works, is really important. Them having to zip a folder and send me way more data than is desirable was a constant problem with the Valley games.
      • The secondary reason is that, when it comes to malicious tinkering, the chunk-based system is not any more protective. Someone can go into the file system and delete chunks that have bad things in them that they don't like, and keep their overall metagame, in both Minecraft and the Valley games. This triggers a regeneration, and they've thus gamed the system. I just never really saw that happening much with either game.
      • Those chunk-based games also have much smaller chunks, and much more frequent transitions between them. This game has more in common with SimCity 4 regions. So for those other games, using a system like I have here would be impractical and not solve any problems regarding sending in bug reports, for example. They are what they are, they need that chunk-based file system. This game does not benefit from it, so it's using something different that kind of builds off of my experience with both data formats.
    • As an aside, I developed all these changes to savegames back in January, but the thing that is new is the protection logic with the "timekeep" files.
  • Discovered that there were some flaws with my prior logic for saving the timelines with seconds in there.
    • Specifically, if you sat for any length of time doing nothing, then switched timelines, when you loaded the original save it would not let you switch timelines again for the length of time you sat. Oops.
    • Even more specifically, let's say you played for an hour without saving, then switched timelines. You would only properly be able to get to the other timeline by loading the newer timeline, then cross-loading back into the other one. Not exactly desirable.
    • I have put in a two-part solution to these issues:
      • Part 1 is that it now saves the turn number rather than the second. So if you sit for a while on one turn, or even fiddle around without changing the turn, then it doesn't care.
      • Part 2 is that if you HAVE changed what turn it is since the last time the game was saved, then as you exit the city you incremented the turn on, it makes a new savegame for that turn, and that is now the most recent savegame of record for that timeline, matching the one that you would swap back to from the other timeline you changed to.

Post-Apocalypse Completed (For Now)

Entering Chapter Three

Bugfixes

  • Corrected the tooltip for mental energy to properly describe the fact that structures and jobs never use it now.
    • Thanks to Waladil for reporting.
  • Fixed an issue where the game was trying to recreate building POIs in irradiated cells, and then was running out of names for them.
    • It's possible for the map cell to be irradiated, but the POI is still technically intact as far as the building itself goes, if it's a cultist temple or similar. These are still considered evacuated.
  • Fixed a bug where if a minor event was happening at a place other than a building (aka with a unit of yours standing on not-a-building), then the text of the minor event would be absent, even though the actual buttons and title and other aspects of the event would work properly.
    • First ran into this last week, and it was very puzzling. But figure it out today.
  • When a unit is using the nonviolent targeting type, it no longer gives threat lines to player units that would move somewhere. That was erroneous and was really confusing in a few cases.
  • Fixed an issue where the arrows that point up at things on the top right of the screen (like the forces sidebar, or VR simulation button, or end of time button) were too low.
    • Thanks to Mintdragon, Wolfier, and Fluffiest for reporting.
  • Fixed a bug with the build button showing in the end of time.
  • Fixed an issue where in chapter two starts, or fresh cities in chapter three and onward, the game was trying to trigger the "weapons and armor" project, which is impossible to complete in those contexts because the related things are already auto-unlocked.
    • Have also further verified that this DOES properly trigger in chapter one, after the "Build a bunker" project is complete, after the corporate show of force event.
  • In rank 2 cities -- either starting a new profile in chapter two, or starting a timeline beyond the first in chapter three and onward -- the following two fixes are now in place:
    • The enemies spawn around you like they do in a chapter one start.
    • You do not get a double message about establishing your network. You just get the "rank 2 city" note, and that's it.
    • Also the rank 2 city note has been corrected to no longer talk about the old style of "you have some invisible buildings that are fully optimized," as that's not a thing anymore. It just has you build the buildings, but without the hassle.
    • Thanks to mblazewicz for reporting the chapter two city issue, although I can't find the bugtracker ticket anywhere to close it.
  • Fixed an issue with an unlock inspiration being overly-specific and therefore confusing. Basically, it used to be triggered by one event, and now can be triggered by several, so it made very little sense.
    • Thanks to Waladil for reporting.

0.593.7 Hotfix 2

(Released October 31st, 2024)

  • Adjusted the visuals of the large nukes so that they look nicer, and made it so that there are up to 10 of them, rather than up to 5, when a certain thing happens.
  • Fixed a regression from yesterday's changes to the "simple choice" windows.
    • If you were viewing the "results screen" from them, then clicking the button would not properly exit the event, instead taking you into an infinite loop. I had been worried about this sort of thing, but missed this case.
    • I also added in some additional keybind handling for these cases, to handle both the spacebar and escape key (or whatever you rebind the equivalent to):
      • If there is a nevermind option, then the escape key will trigger it.
      • If there is only a single option of whatever sort, then the escape key or the spacebar will progress it.
    • Thanks to mblazewicz for reporting.

0.593.6 Hotfix

(Released October 31st, 2024)

  • The amount of microbuilders generated by microbuilder min-fabs has been doubled, and the amount of elemental slurry required to create that has been increased by about 30%. This should create better balance for folks during chapter one in particular.
    • Thanks to Space, Pingcode, More_Dakka, and Fluffiest for reporting.
  • Fixed a bug in the prior build where, due to a boolean inversion, any building that was not-not-post-apocalyptic would explode if it was not-yet-the-apocalypse. Translation: all your buildings would explode on loading non-apocalyptic savegames. Facepalm.
    • Thanks to MOREDAKKA for reporting.

0.593.5 Post-Apocalyptic Construction

(Released October 30th, 2024)

  • When there are distance restrictions on jobs that are embedded in human structures, it no longer shows highlights on any structures that would be too close to an existing job. This makes planning such structures dramatically easier.
  • The PMC Officer Sigil contemplation now requires you to be a PMC Imposter to move there. Previously it would let you move there, and then to actually do it you had to be a PMC Impostor.
    • I corrected most other cases of this, but evidently missed this one.
  • A bunch of work on that new kind of project that gives specialized StreetSense activities.
    • It's still not quite done yet, and the "Make Engineers Of Your Nickelbots" post-apocalyptic project is something you can softlock yourself on if you try to do it even though it says it's not ready yet. I'll be finishing that up tomorrow.

Post-Apocalypse

Bugfixes

  • The way that POIs are saved into savegames has been hardened so that if they happen to be collapsing right as the savegame is being saved, or they have a reference to a building that no longer exists, then the problematic POI will simply not be saved.
    • Also fixed a bug in the prior version where discovered POIs were being read as destroyed, which probably was not helping matters.
    • Thanks to mblazewicz for reporting.
  • Fixed an issue that could happen with some of the new logic from the prior build where it was cleaning up destroyed buildings. However, it was trying to do this too soon after loading a savegame, thus leading to errors. It no longer does this logic during the load process.
    • Thanks to dlipiec for reporting.
  • Fixed an issue where, after a network tower was completely destroyed, there could be a lingering reference to it from the network which would cause the emergency network source to not appear in the build menu.
    • Thanks to mblazewicz for reporting.
  • Fixed yet another semi-rare exception that could happen when transitioning into the final doom (aka, it does not reliably reproduce). I've also moved that into its own method and instrumented it better so that if another one happens again, I will know.
  • Corrected the scale of the predator unit when it is in conversation screens.
  • The way that minor events and "examining a background conflict" are opened has been completely rewritten from scratch.
    • It should no longer be possible to miss having an event of this sort pop up, but there may be some other bugs as side effects, like being unable to close certain events, especially background conflict examination windows, perhaps.
    • All of the cases I have tested are okay, but this was not a slight change.
    • Thanks to dlipiec for reporting.
  • Fixed a bug where some buildings that were destroyed were trying to recreate their POIs fresh on loading older savegames.
    • This applied mainly in games with large amounts of previous destruction.
  • Fixed an issue with point to point microwaves where they said they were out of network range while they were being built. This was inaccurate, and they would show just fine after finishing construction.
  • When an upgrade benefits bulk units, it now properly highlights those in white in the list if you have unlocked them, versus showing them in gray.
    • Thanks to Trogg for reporting.

0.593.4 Tower Loss

(Released October 30th, 2024)

Tower Death

  • In general, losing the network tower no longer immediately pops up a new one with a notice about "critical save."
    • This will be handled differently in general from now on.
  • When you have lost a network tower, there is a new type of emergency network source that becomes available for you to build inside of other structures.
    • It provides less network range and almost no electricity, and since it is hidden in human buildings, it shows the network icon above itself in both the map and regular street views.

Post-Apocalypse And Related

  • Irradiated cells now draw darker in the map so that you can see where there is this sort of hole in the city. This applies well before the final doom, since some of the smaller explosions (or even the Baurcorp nuke) cause the irradiated status.
  • Destroyed buildings no longer draw in the map view, and no buildings draw on the map view for cells that are irradiated in general.
  • In general, if anything destroys the host building that one of your "hidden structures in a human building" is inside, your structure is now permanently destroyed (not to remains that can be rebuilt, because you can't rebuild the host structure around your hidden structure.
  • POIs can now be destroyed.
    • If their entire cell is irradiated, and they are smaller than one cell, that will do it.
    • If they are from a specific building, and that building is destroyed, that also does it.
    • If they are a multi-cell tile (spaceport, larger military bases, etc), then ALL of their cells have to be irradiated in order for them to be destroyed. Otherwise they will just be partially destroyed, but still there.
    • Once a POI is destroyed, it no longer has any reinforcements come to it, it no longer has any security clearance, and so on.
  • After the final doom happens, there is now a gap of 8 seconds before you get a message about your intelligence class falling, and before you get any replacement units as a netslicer.
    • This helps to maintain the tone of this event better, and it also ensures that your new units don't jerk the camera away from what you are looking at, and also that they do not spawn in the blast area while that's still going off. If at all possible, they will spawn outside of irradiated areas in general, but they will spawn in an irradiated area if there is nowhere in the city that is not irradiated.

Bugfixes

  • When in the post-apocalyptic mode, any structures or jobs of yours that are invalid for that mode are now removed from the game. Previously the ones that were burned-out were able to linger and be rebuilt.
  • Fixed a bug where the "toggle delete any unit" cheat was throwing exceptions when you selected it or tried to use it.
    • Thanks to dlipiec for reporting.
  • Fixed a bug where the "marker light" for structures inside destroyed buildings were still drawing.
  • Fixed a bug where some of the structures of the player were being destroyed too early during the final doom, leading to the intelligence class to fall during the pop-up event right prior to the things that happen.
  • When new units are spawned from things like the "critical save," they will no longer be able to appear in the wasteland around the city.
    • Thanks to dlipiec for reporting.
  • Fixed a major issue with how reinforcements were happening, that was leading to doom-stacks of mechs in military bases in chapter 2.
    • Essentially, the pool from which units should seed are not including the mark 2 mechs, in order not to cause mark 2 mechs to start spawning into military bases too soon. So normally, what happens during a reinforcement event is that a mark 1 mech is seeded, and instantly upgraded to mark 2, as an example.
    • However, since all mechs of this sort are upgraded to mark 2 after a certain point in the story, the game was detecting that there were no mechs at all in the base -- not of the kinds it should seed, anyway. So it was then seeding more... and more... until they couldn't fit in terms of even walking around.
    • Now it has separate tags for seeding and for checking, and these mechs are counted properly.
    • If any of the categories of units that should seed as reinforcements are over the maximum cap of what is allowed, the game also now strips those out, so this should fix all existing savegames with the issue.
    • Thanks to mblazewicz for reporting.
  • Fixed the "Null unitToUse!" error that could happen on final doom if there was no place to spawn a technician near where the camera was. It now tries to do so in the entire map before giving up.
    • Thanks to dlipiec for reporting.
  • Fixed a bug where if you had another window open when reaching the point where an event should pop up -- specifically the final doome, and perhaps no others at this point, actually, it would fail to fully open that event.
    • Thanks to dlipiec for reporting.

0.593.3 The Post-Apocalypse

(Released October 29th, 2024)

  • SecForce Stations are now POIs with specific names (really, more like numbers).
  • Added a new "Lightweight Components" piece of equipment that is available from the very start of the game. IT gives +3 movement range and +15 agility.
    • A straightforward way to improve speed and agility. Multiple can be stacked in a single android.
    • Thanks to Fluffiest for doing LITERALLY everything with this. All I had to do was copy and paste her xml in, as she fully designed and implemented it. Super cool!!

Doom Events

  • Eleven new musical stingers have been added for use at the commencement of dooms. There's a longer compound one for the final doom, in particular.
    • These are kind of along the lines of what happens during chapter changes, just used differently.
  • The various music cues for doom events are all now in place, helping to accentuate the importance of those.

Post-Apocalypse

Bugfixes

  • Dramatically improved the performance of the wander logic for NPC units. It was taking quite a long time (a few hundred milliseconds, in aggregate) for a dozen or so units to wander. That has now been reduced to about 3 milliseconds for the same units.
  • Fixed two issues with units that wander: first that they could wander into the wasteland when they were not supposed to, and secondly that they all had a tendency to wander southwest because of an accidental bias in the wandering logic. They COULD wander any direction, but southwest was a trend that would consistently show up over large timescales.
    • Thanks to Wolfier and dlipiec for reporting.
  • StreetSense and Contemplation entries no longer show on buildings that have been destroyed.
  • There is a rare exception that can happen when you are on the city map view, and trigger the final doom event while mashing 0 a bunch.
    • I have put in extra instrumentation to narrow down where the bug happens, but I've only been able to reproduce it one time, so I can't actually fix the root problem yet.
  • There was a bug that could happen if a bunch of nukes had just gone off on the map, and you quickly reloaded into a new savegame directly after that. It should be fixed now, but is worth checking more.
  • Fixed a longstanding bug where the territory control category could be present with just the delete and pause functions in it, but no actual territory control flags to place.
    • Thanks to mblazewicz for reporting.
  • Fixed a bug where if an existing window was open, then events that were popping up as a result of something like the final doom, or as a result of an action over time that has an event at the end of it, would fail to open.
    • So for example, have inventory or history open when one of those callbacks should happen, and the callback would be missed entirely.

0.593.2 Space Invasion

(Released October 29th, 2024)

Doom Events

Bugfixes

  • Contemplations that happen at your own buildings should no longer have any security clearance check. Thus preventing you from being blocked on a wide variety, including the flower girl one.
    • Thanks to Wolfier for reporting.
  • Fixed a regression in the prior build where NPCs that were supposed to spawn in "near to humans" were not showing up at all.
    • This was due to my changes to fix the spawn location of the capture mechs during the prison segment so that they spawn closer to actual targets, and related to some of my new chapter 2 content that also spawns near specific buildings.
    • It turns out that there are two branches of code needed here, as one set of logic does not work for both cases.
    • Thanks to Wolfier, Alias50, and mblazewicz for reporting.
  • Made sure that things were compiled in such a way that there should not be an exception when opening the cheats menu.
    • Thanks to dlipiec for reporting.
  • Fixed two projects having references to Atmosphere Only, which no longer needed to be mentioned since it auto-unlocks.
    • Thanks to Fluffiest for reporting.

0.593.1 Dooms

(Released October 28th, 2024)

  • The release notes link in the game has been updated to point to this new page.
  • Have started adding some more goal states, and removed two goal states, as I'm coming to realize I want something more flexible that does not mean "this timeline has reached a full tier 1 goal state" in the sense I previously meant it. There's a lot more interesting opportunities to mix and match for players when I'm not being that monolithic.
  • When savegames are loaded, they now specify what the version of the save was in the log where it says how long it took to load. This is not really useful for anyone but myself and perhaps some testers, to see if a loaded save is really from the version that a bug reporter says it is.
  • Chapter Two has been renamed to Strategy, and Chapter Three is now called Freedom. Previously, chapter two was called Freedom, but that was out of date for a while now.
  • The android archetypes handbook entry now mentions by name the different types of android that exist.
  • After you are warned about the dooms in chapter two, you now have a project which is to reach intelligence class 4. This will remain for probably most of the second chapter, unless players make it a priority.
    • Once escaping the first timeline, that is the catalyst to move to chapter three (which is the main time loop of the game, and includes all of the content from chapter two), and in chapter three and onwards it does not have this project since you are already at that level.

QoL

  • Both StreetSense and Contemplations now have a dropdown above them on the radial menu, where you can select subsets of them by purpose.
    • These were getting crowded even in chapter one, and it is only going to get drastically worse as chapter two and onward grows. So this allows players to quickly filter to the sorts of things they are interested in out of what is available at the moment.
    • As an aside, this in particular makes it easier to see how to start a shell company, with that option then disappearing after you have started one.
  • Timeline goals are now visible for the first time, in a new tab in the history window. Wow that window has a lot of tabs now.
    • You can now see what the available timeline goals are, in broad terms, and also filter by collections that are provided for it. In their tooltips, it also shows what resources you will get for the metagame without explaining those at all, and if there are multiple tiers of accomplishing that timeline goal.
  • There is also a new contemplations tab in the history window, which shows you the contemplations in a list format. This allows you to also filter them, to see things like what things are related to the critical path of goals.
    • Here again, the goal was to make sure that players are able to plan properly when they are thrown in and there are a ton of options, most notably by filtering down the options at least somewhat.

Doom Events

  • The "starting conflicts" choice when starting a new timeline (in the end of time) has been shifted to "doom type" instead, and now folds in a lot more things than just the conflicts at the start.
    • This is part of a much larger new feature in general, which will finally give some time pressure in chapter two, but in a bit of a twist than games that bother me about how they handle it.
  • There is a new Dooms tab in the history window, which shows the list of dooms that are going to happen for this current timeline, and on what turn they will happen.
    • If the doom clock has not yet started, then it simply notes that this will happen in the future.
    • In general, you can see some information about dooms early (that they exist at all) by hovering that tab in the history window, as early as in the prologue. However, dooms themselves will not show up until chapter two.
    • Once you can see them, it shows you what turn they will happen on, exactly, and how many turns you have remaining before they do However, if you've never experienced a given doom before in any timeline, then it just shows "unknown doom" until it happens.
  • I should note that for the very first doom, you only get 99 turns, and for all the others you get 100 turns. This makes for round numbers when you are starting a fresh timeline on turn 1, where dooms hit on turns 100, 200, etc.
    • This doesn't apply when you are entering from chapter one on your first timeline, but every other timeline it will apply.
  • For the initial "Vorsiber's Wrath" doom type, the ten doom events have been defined and described.
  • When you are in chapter two, and you have a network tower, it now starts the doom counter and gives you a message about what dooms are.
    • It also gives you two new handbook entries in a new Timelines section, and it marks both as read immediately since they are duplicate information from the message that pops up and its extension for if you have more questions.
  • In chapter three and onward, it starts the dooms as soon as you build the network tower, but it doesn't have anything new to say about them that you don't already know.
    • Note to QLOC: you'll be able to test chapter 3 things within a week, so please keep a note of these things to test them later, since you can't test them yet.
  • When doom events happen, they now create a popup that is a must-look-at message on the task stack. You can either right-click to dismiss those, or left-click to see the full list of dooms.
    • The general idea here is to make sure that these are not missed.
    • Note to QLOC: if one of these is visible, it should save into the savegame and then load back out properly.

Zodiac Path

  • There are some goals related to this, and a contemplation that you have no way to complete yet. There's going to be some side-questing required before you can even start these paths.

Housing Path

Balance

  • Daily Necessity storage caps are now 10x higher from each storage bunker, as the cap was too easily hit.
  • Residential MegaStructures can now hold 2x the population they previously did, and 1.5x the amount of VR Day-Use Seats.
  • The requirement for reaching intelligence class 4 has been tripled, and the other intelligence classes above it have also been increased substantially.
  • Took away the cap on the six personality-based resources.
    • The goal of the cap was to prevent players from hoarding them and never using them, but this created another problem where if they had more than a certain amount, the game would have to warn them, and if they didn't do things in the right order, they could wind up losing some to hitting cap. I just don't like that flow at all, it doesn't feel right. I've decided that if they want to hoard it, let them.
  • Corrected the balance on the Computing Host upgrade; it was way too small per upgrade.

Cheat Adjustments

  • Added a new cheat that enables a mode that allows you to delete any unit you select.
    • Useful for when I need to test certain combat situations over and and over again, but not for balance reasons. I need all the speed I can get.
  • Sandbox mode was a misleading name, and has been renamed to "Cheat Mode."
    • It is also now per-timeline, versus infecting an entire profile forever once turned on a single time. That's a lot more fair.
  • The "Go To Chapter" cheat has been removed, as that did not really function in a useful way in general at this point.
  • The "End of Time Resource Grant" cheat has also been removed.
    • The other cheats relating to the end of time remain, as they can help players get un-stuck if they manage to get stuck somehow.

Bugfixes

  • Fixed an issue where you were getting refunded for mental energy you didn't actually spend when scrapping structures or jobs.
    • Thanks to Fluffiest for reporting.
  • Contemplations now show what their requirements are in the lower left description of them when you hover them, rather than first making you select a unit and then hover them to find out if you pass or fail.
  • I've put in extra protections against some random "wealth goes to excess for one turn, or even a few turns" bugs that I'm not sure how to trigger, but which were definitely on the prior build, just very rare.
    • Thanks to Lukas for reporting.
  • Fixed the bug with older savegames not properly giving players the personality-based strategic resources. It was related to the caps I've now removed.
    • Thanks to mblazewicz for reporting.
  • Fixed a bug where npc units set to spawn around a specific kind of building were not actually doing that logic appropriately.
    • Thanks to mblazewicz for reporting.

Prior Release Notes

Moving To Chapter Two