Difference between revisions of "HotM:Moving To Chapter Two"

From Arcen Wiki
Jump to navigation Jump to search
 
(40 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
*** Linux: ~/.config/unity3d/Arcen Games, LLC/Heart of the Machine/Player.log
 
*** Linux: ~/.config/unity3d/Arcen Games, LLC/Heart of the Machine/Player.log
  
== 0.564 ==
+
== 0.566 ==
 
(Not Yet Released)
 
(Not Yet Released)
 +
 +
* The mark 1 and mark 2 mechs are now properly separated out by tag, and so the new mark 2 mechs should no longer seed uncomfortably early.  In the prior build, the new mechs were able to seed earlier than intended.  Existing saves that already have them will still have them.
 +
** Thanks to Mateusz Błażewicz for reporting.
 +
 +
* When any savegame is loaded, it now calculates extra density of spots where npc units can stand, which makes it so that mechs and vehicles in particular can handle things a bit better.
 +
** Additionally, these use some relaxed seeding logic for being around fences and fields and so forth, so both now do far better around tight spaces.
 +
 +
* Some new logic is now in place for allowing npc managers to seed things really close to a target, and for npc managers to target a specific type of player structure, with fallbacks for if the more ideal groups are not found.
 +
 +
* The "units behind objects" highlighting now has more natural interaction with the fog.  I still have more to do with this later, but for now it's an improvement.
 +
** Thanks to Mateusz Błażewicz for reporting.
 +
 +
* Added in some more hardening for protection from exceptions from recently-dead npc units.
 +
** Thanks to Wolfone and mblazewicz for reporting.
 +
 +
* Improved the handling of killing key contacts, and added a variety of functionality for gating certain things based not just on their flags, but if they are alive (met or unmet), met and alive, or dead (met or otherwise).
 +
 +
* Fixed an issue where Sledge was too large to fit in the dialogue windows properly.
 +
** Thanks to Mintdragon for reporting.
 +
 +
* Fixed a typo in the AGI researcher warning where it was saying there was widespread agreement when it should have been the opposite.
 +
** Thanks to Kenken244 for reporting.
 +
 +
* The old "Robotic Compromised" stat has been removed, and is now replaced by a "Hacking Resistance" stat, instead.
 +
 +
 +
<spoiler show="Click Here To Show Spoilers For This Build" hide="Spoilers">
 +
 +
* Adjusted a bunch of internal things about how key contacts work, prepping for near-future additions.
 +
** Adjusted the Baurcorp nuke event to now trigger based on these.  They should still attack you if the countdown timer runs down and you don't use the nuke, or if the nuke is used, the other two factions should still start fighting with one another.
 +
 +
* At the start of phase 5 of chapter one, which is at the point where the demo used to end, an upgraded BL-5 Machinist mech shows up near your housing structures (as much as it can, anyway), and then starts kidnapping your sheltered humans.
 +
** If you did the nuke for Baurcorp OR refused the nuke, they have a lawyer show up with an offer to file an injunction for you against the mech.  If you stole the nuke, they do not have this offer, and the dialog is different if you made the above two choices.
 +
** If you have met the Nurturist Exalter and spoke to her, then she also sends a lawyer who can file an injunction for you.
 +
** If you accept one of the lawyers, then both they and the mech disappear.
 +
** If there are no lawyers present, or you don't agree, then there's nothing you can do about the mech just yet.
 +
 +
* The legal injunction now actually works for 9 turns, and uses a different sound effect than before for the countdown.  This is a less-severe sound style for this kind of thing that is counting down.
 +
** The mech also returns, but without any lawyers, after the countdown is done.
 +
 +
* The new contemplation to unlock the raven is now in place as soon as tier 4 of chapter one is complete.
 +
 +
</spoiler>
 +
 +
=== UI Updates ===
 +
 +
* Windows and tooltips and such in general now fade in rather than appearing instantly, although the current fade-in is very fast.
 +
** More will be done with this, but this already makes things feel dramatically less abrupt.
 +
** Thanks to Josh Atkinson for suggesting.
 +
 +
* The code for how tooltips are rendered has been completely reworked.
 +
** Essentially, previously it did a lot of extra math to figure out how big things should be first, and then actually drew the tooltip at that size.  However, due to occasional inaccuracies inside TextMeshPro about how this was calculated in advance, this meant that it would sometimes overflow its bounds.  To get around THAT, I let the tooltips increasingly eat into the right-hand margin, which was still problematic in others ways.
 +
** Now it applies the text only once, and then has to wait a frame to find out how big that actually was, and then it does a further pass of size adjustments based on that new information.
 +
** This works out really well with the fading-in logic, since it's invisible for that first frame now, regardless of whatever else is happening.  By the second frame, which may be something like 16 milliseconds later, it is sized properly.  This fixes the margins issue, which looked really bad, and also just makes them more efficient to render in general, as well as easier to maintain later on.
 +
 +
* Added in a 200ms delay before tooltips are shown.  So if you are just moving your mouse across the screen, it is less likely to get up in your face with instant tooltips.
 +
** I may make this more configurable later, for people who prefer things that pop up even slower, or which pop up faster.
 +
** Thanks to Josh Atkinson for suggesting.
 +
 +
* The way that panels that size height-wise to their text work is now consistent with the new tooltips approach, which also means that it is finally accurate versus me having to give extra buffer to them.
 +
** In general extended several parts of my ui framework to make this work more seamlessly, and it also now will update text slightly faster on buttons and similar.  Probably no-one will notice that, but it's about 200ms more responsive on average.
 +
 +
* Fixed a number of interfaces having the right-border incorrectly not matching the left border, so that text would seem to kind of overrun that some.
 +
** For tooltips that had to do with the old measurement issues, but for these interfaces this was just something I defined incorrectly for some reason.
 +
** Thanks to Igor Savin for reporting.
 +
 +
* Fixed a very ugly dark-greenish button color on the event windows, which really were not meant to be that color.
 +
** And in general made the buttons on those screens and the reward screens and so forth more stylistically consistent.
 +
** Thanks to Josh Atkinson for suggesting.
 +
 +
== 0.565 Preparing And Stunning ==
 +
(Released July 4th, 2024)
 +
 +
* The game now detects if it is the demo build or the main game (playtest version counts as main game for these purposes).
 +
** The "end of demo" notice now only appears if the player is actually on the demo.
 +
** The main menu "wishlist" button is replaced by a "wiki" button on the non-demo builds.
 +
 +
* Tower Mainframes and Biological Mainframes are now immune to subnet stun, as are Contraband Scanners.  There was nothing fun or interesting about those being stunned, and a whole lot of things that were frustrating.
 +
 +
* The following structures are no longer subject to being stunned when their subnet is attacked: slurry spiders, microbuilder mini fabs, biomulchers, bovine replicators, protein vats, hydroponic towers, compact water filters, repair spiders.
 +
** The following related structures are still subject to their stuns: slurry mines, full microbuilder fabs, protein canneries, water filtration towers, overdrivers and efficiency improvers, mining skimmers.
 +
** Having stuns mess up the core of your economy with a cascading effect is just annoying and does not add much strategy.  Having stuns mess up your largest producers, so that their more vulnerable, and if you're reliant on that beyond your core production is a lot more interesting.
 +
 +
* Added a large amount of new framework logic to allow for relaxed spawning of mechs so that they can spawn stepping on really small buildings and fences relative to their size.
 +
** Basically, I need for certain things to reliably seed near a target no matter how crowded things are.  This wasn't super relevant before, although it did lead to some very odd vehicle spawning from player aerospace hangars that is in one bugtracker report.
 +
** To be able to test this, the cheat "spawn npc unit for local authority" has been updated so that if a player has a structure selected, and they try to spawn an npc unit, it will try to be as close as possible.  This allows for testing a variety of situations in a more direct way.  Note that this only applies to that one specific cheat at the moment.
 +
 +
* There is much-improved logic for seeding things closer to targets when it crosses cell boundaries, which allows me to be sure that when something big is supposed to spawn near to a target, it is almost certain to do so.
 +
 +
=== Bugfixes ===
 +
 +
* The tooltip for the language label in settings now includes the same information that hovering over the dropdown for the language does.
 +
** Thanks to mblazewicz for reporting.
 +
 +
* The UI tour now saves the controls popup for the last step, rather than that being the second step.  This makes the tour a lot less overwhelming in general, and in general just makes more sense.
 +
** Thanks to mblazewicz for suggesting.
 +
 +
* Added in some extra logic to prevent the ui tour from popping up on existing savegames that are already past turn 1.
 +
 +
* Fixed some funky issues with the way that subnets would form at times, where the lines would appear to cross roads even though technically the connections were valid, or a new building would link up to a node that was inexplicably far away, etc.
 +
** This turned out to be entirely cosmetic, but it was confusing as heck when you had large U-shaped subnets with blocking roads in the middle.
 +
 +
* Fixed an exception that could happen if a machine structure was rebuilt underneath an npc unit that was standing on it at the exact same instant that the npc unit died.
 +
** Thanks to mblazewicz for reporting.
 +
 +
* Photo mode now allows you to freely move the mouse without turning the window view, unless you hold down either the left or right mouse button.
 +
** This allows for setting up a shot and then making further adjustments, or activating other software to take the screenshot rather than losing the position of the shot due to the mouse moving it away.
 +
** Additionally, when holding down the M key to adjust the position of the manual focus during photo mode, that now properly shows the mouse cursor.  In recent builds that had not been working right.
 +
 +
* Fixed an ongoing annoyance with the TPS reports and ledger for certain kinds of resources where if they were hitting their resource cap, but that cap is very high, then they were still complaining.
 +
** This was most notable with elemental slurry, but it could happen with other things as well.
 +
** It now just treats these as neutral, since they are producing enough to stay at the very-high cap and just sitting there.
 +
** Thanks to teo4512 for reporting.
 +
 +
* Fixed an issue where vehicles coming out of the aerospace hangar in certain circumstances could reliably spawn very far away from the hangar.  Now they will hug up close to the hangar in some fashion, as they should.
 +
** Thanks to riking28 for reporting.
 +
 +
== 0.564 Finishing The Localization Framework ==
 +
(Released July 3rd, 2024)
 +
 +
* Editing pass has been done on the new text from yesterday's build.
 +
** Thanks to Kara McElligott Park for doing this!
 +
 +
* The critical hits text now includes the line "The color of a target is the thin line under their health bar, not the large icon over their head."
 +
** Thanks to Isith for suggesting.  This was confusing a number of people.
  
 
=== Localization Framework ===
 
=== Localization Framework ===
Line 19: Line 144:
 
* The main "language table" entries are now properly read from other language files, and display "properly enough" for this point of testing Chinese and Spanish.
 
* The main "language table" entries are now properly read from other language files, and display "properly enough" for this point of testing Chinese and Spanish.
 
** Fixed an issue where certain things that were very commonly-used, like button text, were being left as stale when changing languages.
 
** Fixed an issue where certain things that were very commonly-used, like button text, were being left as stale when changing languages.
 +
 +
* Added a new system where table rows with localized contents on themselves or sub-components now register themselves as targets for localization import, and there's a whole new framework around this.
 +
** The localization imports are now able to fully identify all of the tables in question, and they also are able to match to rows and put their general display names and descriptions in an automated fashion.
 +
** The setup for noticing rows that are missing a field hooked into this system is also there, which helps me self-check any issues and correct them before translators ever get involved with a given field.
 +
** This has been a lot more surgery than I thought it would be based on where I had things mid-day, but my original estimate for how long it would take me to do this was a week (that was pessimistic, but still), so I'm still happy this is going so quickly.
 +
 +
* All of the localization linkages are now in place and working, using sub-rows and swapping things out on the fly as-needed.
 +
** The last bit I need to handle are the things for duplicate text that is auto-linked in secondary languages, but all of the bits that involve reading in the input spreadsheets are complete.
 +
 +
* The way that linked localizations is handled has been shifted to be faster to read at runtime, and the proper linkages are now in place.
 +
 +
* If the extra localization logging setting is on, it now complains about missing rows that were not present but which were expected.
 +
 +
* Discovered that rows that were copied-from other rows using the xml copy_from tag were not properly pulling localization entries.  There is now logic where they grab what they need to.
 +
 +
* At this point, all of the localization links of all sorts are self-checking and verify that they are all read in properly.
 +
** There are some font-sizing issues that cause display issues in Chinese, but that's a problem for later; the actual text is being read in properly, and I already have some underlying font stylesheet capabilities that I built into my custom version of TextMeshPro to handle cases like that.  That can safely be handled during LQA, later.
 +
** Note: any testing done with the Chinese language is going to have a lot of missing text right now because of this font sizing issue that will be left for later.  Testing with Spanish does not have this issue.  Of course, both languages are largely gibberish at the moment since they were machine-translated for these early tests, but that's not the point for the moment.
 +
 +
* Fixed a bug with how building variants were storing updating their names, which made it so that switching languages mid-game was causing some wrong display of text.
 +
 +
* Added a new feature which allows post-validation of arbitrary rows after language changes happen.
 +
** This is used for the various statistics entries, which "bake" some localized elements into place for whichever language they are using at the moment.
 +
** Now when you swap back and forth between languages, and look at the statistics screen, it updates as expected.
  
 
== Prior Release Notes ==
 
== Prior Release Notes ==

Latest revision as of 20:49, 10 July 2024

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.566

(Not Yet Released)

  • The mark 1 and mark 2 mechs are now properly separated out by tag, and so the new mark 2 mechs should no longer seed uncomfortably early. In the prior build, the new mechs were able to seed earlier than intended. Existing saves that already have them will still have them.
    • Thanks to Mateusz Błażewicz for reporting.
  • When any savegame is loaded, it now calculates extra density of spots where npc units can stand, which makes it so that mechs and vehicles in particular can handle things a bit better.
    • Additionally, these use some relaxed seeding logic for being around fences and fields and so forth, so both now do far better around tight spaces.
  • Some new logic is now in place for allowing npc managers to seed things really close to a target, and for npc managers to target a specific type of player structure, with fallbacks for if the more ideal groups are not found.
  • The "units behind objects" highlighting now has more natural interaction with the fog. I still have more to do with this later, but for now it's an improvement.
    • Thanks to Mateusz Błażewicz for reporting.
  • Added in some more hardening for protection from exceptions from recently-dead npc units.
    • Thanks to Wolfone and mblazewicz for reporting.
  • Improved the handling of killing key contacts, and added a variety of functionality for gating certain things based not just on their flags, but if they are alive (met or unmet), met and alive, or dead (met or otherwise).
  • Fixed an issue where Sledge was too large to fit in the dialogue windows properly.
    • Thanks to Mintdragon for reporting.
  • Fixed a typo in the AGI researcher warning where it was saying there was widespread agreement when it should have been the opposite.
    • Thanks to Kenken244 for reporting.
  • The old "Robotic Compromised" stat has been removed, and is now replaced by a "Hacking Resistance" stat, instead.


UI Updates

  • Windows and tooltips and such in general now fade in rather than appearing instantly, although the current fade-in is very fast.
    • More will be done with this, but this already makes things feel dramatically less abrupt.
    • Thanks to Josh Atkinson for suggesting.
  • The code for how tooltips are rendered has been completely reworked.
    • Essentially, previously it did a lot of extra math to figure out how big things should be first, and then actually drew the tooltip at that size. However, due to occasional inaccuracies inside TextMeshPro about how this was calculated in advance, this meant that it would sometimes overflow its bounds. To get around THAT, I let the tooltips increasingly eat into the right-hand margin, which was still problematic in others ways.
    • Now it applies the text only once, and then has to wait a frame to find out how big that actually was, and then it does a further pass of size adjustments based on that new information.
    • This works out really well with the fading-in logic, since it's invisible for that first frame now, regardless of whatever else is happening. By the second frame, which may be something like 16 milliseconds later, it is sized properly. This fixes the margins issue, which looked really bad, and also just makes them more efficient to render in general, as well as easier to maintain later on.
  • Added in a 200ms delay before tooltips are shown. So if you are just moving your mouse across the screen, it is less likely to get up in your face with instant tooltips.
    • I may make this more configurable later, for people who prefer things that pop up even slower, or which pop up faster.
    • Thanks to Josh Atkinson for suggesting.
  • The way that panels that size height-wise to their text work is now consistent with the new tooltips approach, which also means that it is finally accurate versus me having to give extra buffer to them.
    • In general extended several parts of my ui framework to make this work more seamlessly, and it also now will update text slightly faster on buttons and similar. Probably no-one will notice that, but it's about 200ms more responsive on average.
  • Fixed a number of interfaces having the right-border incorrectly not matching the left border, so that text would seem to kind of overrun that some.
    • For tooltips that had to do with the old measurement issues, but for these interfaces this was just something I defined incorrectly for some reason.
    • Thanks to Igor Savin for reporting.
  • Fixed a very ugly dark-greenish button color on the event windows, which really were not meant to be that color.
    • And in general made the buttons on those screens and the reward screens and so forth more stylistically consistent.
    • Thanks to Josh Atkinson for suggesting.

0.565 Preparing And Stunning

(Released July 4th, 2024)

  • The game now detects if it is the demo build or the main game (playtest version counts as main game for these purposes).
    • The "end of demo" notice now only appears if the player is actually on the demo.
    • The main menu "wishlist" button is replaced by a "wiki" button on the non-demo builds.
  • Tower Mainframes and Biological Mainframes are now immune to subnet stun, as are Contraband Scanners. There was nothing fun or interesting about those being stunned, and a whole lot of things that were frustrating.
  • The following structures are no longer subject to being stunned when their subnet is attacked: slurry spiders, microbuilder mini fabs, biomulchers, bovine replicators, protein vats, hydroponic towers, compact water filters, repair spiders.
    • The following related structures are still subject to their stuns: slurry mines, full microbuilder fabs, protein canneries, water filtration towers, overdrivers and efficiency improvers, mining skimmers.
    • Having stuns mess up the core of your economy with a cascading effect is just annoying and does not add much strategy. Having stuns mess up your largest producers, so that their more vulnerable, and if you're reliant on that beyond your core production is a lot more interesting.
  • Added a large amount of new framework logic to allow for relaxed spawning of mechs so that they can spawn stepping on really small buildings and fences relative to their size.
    • Basically, I need for certain things to reliably seed near a target no matter how crowded things are. This wasn't super relevant before, although it did lead to some very odd vehicle spawning from player aerospace hangars that is in one bugtracker report.
    • To be able to test this, the cheat "spawn npc unit for local authority" has been updated so that if a player has a structure selected, and they try to spawn an npc unit, it will try to be as close as possible. This allows for testing a variety of situations in a more direct way. Note that this only applies to that one specific cheat at the moment.
  • There is much-improved logic for seeding things closer to targets when it crosses cell boundaries, which allows me to be sure that when something big is supposed to spawn near to a target, it is almost certain to do so.

Bugfixes

  • The tooltip for the language label in settings now includes the same information that hovering over the dropdown for the language does.
    • Thanks to mblazewicz for reporting.
  • The UI tour now saves the controls popup for the last step, rather than that being the second step. This makes the tour a lot less overwhelming in general, and in general just makes more sense.
    • Thanks to mblazewicz for suggesting.
  • Added in some extra logic to prevent the ui tour from popping up on existing savegames that are already past turn 1.
  • Fixed some funky issues with the way that subnets would form at times, where the lines would appear to cross roads even though technically the connections were valid, or a new building would link up to a node that was inexplicably far away, etc.
    • This turned out to be entirely cosmetic, but it was confusing as heck when you had large U-shaped subnets with blocking roads in the middle.
  • Fixed an exception that could happen if a machine structure was rebuilt underneath an npc unit that was standing on it at the exact same instant that the npc unit died.
    • Thanks to mblazewicz for reporting.
  • Photo mode now allows you to freely move the mouse without turning the window view, unless you hold down either the left or right mouse button.
    • This allows for setting up a shot and then making further adjustments, or activating other software to take the screenshot rather than losing the position of the shot due to the mouse moving it away.
    • Additionally, when holding down the M key to adjust the position of the manual focus during photo mode, that now properly shows the mouse cursor. In recent builds that had not been working right.
  • Fixed an ongoing annoyance with the TPS reports and ledger for certain kinds of resources where if they were hitting their resource cap, but that cap is very high, then they were still complaining.
    • This was most notable with elemental slurry, but it could happen with other things as well.
    • It now just treats these as neutral, since they are producing enough to stay at the very-high cap and just sitting there.
    • Thanks to teo4512 for reporting.
  • Fixed an issue where vehicles coming out of the aerospace hangar in certain circumstances could reliably spawn very far away from the hangar. Now they will hug up close to the hangar in some fashion, as they should.
    • Thanks to riking28 for reporting.

0.564 Finishing The Localization Framework

(Released July 3rd, 2024)

  • Editing pass has been done on the new text from yesterday's build.
    • Thanks to Kara McElligott Park for doing this!
  • The critical hits text now includes the line "The color of a target is the thin line under their health bar, not the large icon over their head."
    • Thanks to Isith for suggesting. This was confusing a number of people.

Localization Framework

  • There is now a setting option that allows for changing languages, for now between the original English and the test languages.
    • This all gets saved into the settings properly, and loads the external language files only as-needed.
    • Things are loaded properly in terms of the timing on loading the program, as well as when changing the dropdown value.
  • The main "language table" entries are now properly read from other language files, and display "properly enough" for this point of testing Chinese and Spanish.
    • Fixed an issue where certain things that were very commonly-used, like button text, were being left as stale when changing languages.
  • Added a new system where table rows with localized contents on themselves or sub-components now register themselves as targets for localization import, and there's a whole new framework around this.
    • The localization imports are now able to fully identify all of the tables in question, and they also are able to match to rows and put their general display names and descriptions in an automated fashion.
    • The setup for noticing rows that are missing a field hooked into this system is also there, which helps me self-check any issues and correct them before translators ever get involved with a given field.
    • This has been a lot more surgery than I thought it would be based on where I had things mid-day, but my original estimate for how long it would take me to do this was a week (that was pessimistic, but still), so I'm still happy this is going so quickly.
  • All of the localization linkages are now in place and working, using sub-rows and swapping things out on the fly as-needed.
    • The last bit I need to handle are the things for duplicate text that is auto-linked in secondary languages, but all of the bits that involve reading in the input spreadsheets are complete.
  • The way that linked localizations is handled has been shifted to be faster to read at runtime, and the proper linkages are now in place.
  • If the extra localization logging setting is on, it now complains about missing rows that were not present but which were expected.
  • Discovered that rows that were copied-from other rows using the xml copy_from tag were not properly pulling localization entries. There is now logic where they grab what they need to.
  • At this point, all of the localization links of all sorts are self-checking and verify that they are all read in properly.
    • There are some font-sizing issues that cause display issues in Chinese, but that's a problem for later; the actual text is being read in properly, and I already have some underlying font stylesheet capabilities that I built into my custom version of TextMeshPro to handle cases like that. That can safely be handled during LQA, later.
    • Note: any testing done with the Chinese language is going to have a lot of missing text right now because of this font sizing issue that will be left for later. Testing with Spanish does not have this issue. Of course, both languages are largely gibberish at the moment since they were machine-translated for these early tests, but that's not the point for the moment.
  • Fixed a bug with how building variants were storing updating their names, which made it so that switching languages mid-game was causing some wrong display of text.
  • Added a new feature which allows post-validation of arbitrary rows after language changes happen.
    • This is used for the various statistics entries, which "bake" some localized elements into place for whichever language they are using at the moment.
    • Now when you swap back and forth between languages, and look at the statistics screen, it updates as expected.

Prior Release Notes

After NextFest