AI War 2:Building Multiplayer

From Arcen Wiki
Jump to navigation Jump to search

Known Issues

  • Multiplayer is disabled but coming very soon. We first focused on tightening up the single-player loop (more info here), so thanks for your patience!

What's this phase all about?

Now that we've got the first expansion under our belt, and the game is feeling large and solid at the equivalent of "first AI War plus four expansions," we're ready to tackle the next big thing: multiplayer! We also are going to be adding interplanetary weapons to the base game as a free update (that's the last of the kickstarter stretch goals). This phase should wrap up all our kickstarter promises (including a laundry list of other smaller items), and we expect to have multiplayer fully functional by June or July.

Multiplayer should be in a beta form where folks can test on it and run into bugs long before then. While Chris is mostly working on multiplayer and those other little lingering base game features, Badger and Puffin are going to be doing the bulk of the work on the second expansion, Zenith Onslaught. That should hopefully launch around the same time as multiplayer.

Version 2.019

(Not yet released -- we're still working on it!)

  • Tidied up some names.
    • Extragalactic Thunderbird is now Extragalactic War Thunderchild.
    • Extragalactic Chimera is now Extragalactic War Chimera.
    • Extragalactic AI Hunter / Seeker is now Extragalactic War Hunter / Seeker.
    • Extragalactic AI Hunter / Annihilator is now Extragalactic War Hunter / Annihilator.
    • Extragalactic Jackalope is now Extragalactic War Jackalope.
    • Extragalactic Mothership is now Extragalactic War Mothership.
    • Extragalactic Planet Cracker is now Extragalactic War Planetcracker.
    • Thanks to Fluffiest for noting some of the inconsistencies.

Version 2.018 Hotfix

(Released April 6th, 2019)

  • Fix to a bug that was causing some-but-not-all savegames to fail to load in the previous version of the game. Mainly saves that were games started in 2.016 that were being loaded in 2.017. This was to do with fixing the AI reserves missing. Turns out those should not be added in mid-save. Now that no longer happens, but in the other cases where AI reserves were missing, it adds them properly.
    • Thanks to Badger for reporting.
  • Also added in a helpful method on the World_AIW2 singleton object which lets us just quickly write all the factions (invisible and otherwise) to the log.

Version 2.017 GOG Achievements

(Not yet released -- we're still working on it!) (Released April 7th, 2020)

  • The Scourge now have some power scalings based on the Overall Power Level of enemy factions. It maxes out at a 10% increase in Neophyte spawning rates if the scourge's enemy factions have an overall power level of >= 5.
    • Thanks to swizzlewizzle among others for requesting
  • Fixed a rare exception that can happen in the fallen spire code.
  • Fixed an issue that could have AI Reserves not appearing in the prior version of the game sometimes.

Achievement Fixes And Improvements

  • The Steam and GOG Galaxy client integrations have been moved out into their own sections of code, and a bunch more of GOG Galaxy integration has been included now.
    • As networking is added via Steam, its code will grow enough that it really needs to be on its own.
  • The GOG Galaxy client now logs you in (if you are logged into that program on your system), if you are on Windows or OSX.
    • This is a prerequisite for both GOG Achievements, as well as for networking through GOG.
  • GOG Achievements now log in the same manner that has worked for Steam -- it's about time we got this in!
    • It took us longer to get into their API than it really should have, but we need this sort of thing for multiplayer anyhow, as well as in general this being great for GOG players in the first place.
  • Steam and GOG now properly only get sent achievements that it doesn't think you've already unlocked.
  • Apparently we were saving the "all time statistics" but never actually loading them. Fixed to just not have them, now, as they contained very little aside from local achievements and that was not working.
  • Added local achievements tracking that actually remembers what the heck you have previously unlocked.
    • This also prevents your achievements from popping up every time you restart the game program and enter a savegame with the conditions for the achievements met.
    • Thanks to GreatYng for reporting.
  • The "resubmit offline achievements to Steam and GOG" code now actually does what you'd expect, since it now logs things offline.
    • We tightened this up a bit, anyway, to make it run a little more efficiently on the main menu.

Version 2.016 Thunderchild

(Released April 2nd, 2020)

  • HRF has received many buffs to their budget, and how they use it
    • Maximum budget increased by 500%
    • Budget per second increased by 450%
    • Minimum budget required to attack increased by 3000%
      • Thanks to the a large portion of the community for their notes on HRF
  • Make the "Enable HRF" hack cost fewer hacking points
    • From a discussion on discord

Extragalactic Surprises

  • The AI will spawn more extragalactic ships at AI difficulty >= 7
    • There's been a good amount of feedback that the spire is too easy.
  • Jackalope and Thunderchild extragalactic war units now make their debut. Expect to run into them when using the Fallen Spire, and potentially with other factions in the future. These are SCARY...

Lobby Fixes And Improvements

  • We're now using the ability to load savegames into the lobby to make it so that every time you open the lobby, it now has the selected options that you last used -- factions and otherwise.
    • This fixes several bugs with things showing values that were not a match to the underlying data, as well as making it a lot more convenient in general.
    • Thanks to ptarth, Histidine, NRSirLimbo, Fluffiest, Ecthelon, and deo for reporting.
  • Added a new Reset To Defaults button in the lobby, which lets you change the lobby back to the default settings and build up fresh again if you want to (now that it instead remembers your settings from last time).
  • The "this is experimental" warning on loading savegames and quickstarts into the lobby is now removed.
    • We're using this pipeline for very central things in a lot of places now, and have beat the heck out of it testing permutations.
    • If you find any problems with it, please let us know and we'll fix that as soon as we can, rather than treating it like an optional side feature.
  • When you load any old savegame or quickstart or whatever into the lobby, it now uses your profile's player color properly.
  • If you try to load an old savegame into the lobby and it has a fleet that is no longer valid (or was from a mod or something that you don't have), it now loads properly and just randomizes the fleet in question.
  • When loading a quick start in general, or a savegame/quickstart into the lobby, it was previously possible to have the underlying map seed be different from the one on the UI, which was confusing for sure.
  • When you are in the lobby and the map regenerates, it now refreshes all the faction data rather than potentially keeping some stale data in there. This solves several problems with it showing out of data info for starting fleets in particular.

Other Fixes And Improvements

  • Fix an exception with the Extragalactic War: Ignore Player-Allied Minor Factions option
    • Thanks to Greatmar2 for reporting
  • Fix a bug where the player overall power level was being miscalculated
  • Fix a bug where the Hacking Menu looked incorrect at game load time
    • Thanks to Arc-3N-4B for reporting
  • Fixed a bug with setting the game mode on background threads where it would crash the game because it was trying to instantiate some planet visual objects on those background threads; that's a main-thread-only thing, and was quite the cascade of things to chase down.
    • In general it now protects it against itself, and waits to do it later on the main thread as needed.
    • We also tidied up some code into separate methods to make it easier to find things that are crashing in this area if it ever happens again, but it should not.
    • Also made it so that it can center on a planet from a background thread if it has to.
  • The game had very old multiplayer sync code that has been partially running in place the entire time (even in single player), and which is very outdated compared to what we want to do in the near future. We've commented out the old in preparation for the new, which will be adaptive and scan some entities/planets at a time; the old method was about detecting wholesale problems as soon as possible and halting the simulation, which is not the approach we're taking with this game.
  • If the game is missing a surrogate table for some reason, it now gives an appropriate visible message rather than just hanging game load.
  • Fixed an exception that could happen when loading certain savegames or quick starts into the lobby for further editing. As part of this, was able to verify that all the custom settings are properly being loaded in properly, too, when loading highly-customized saves.
  • A bunch of added robustness and fixes to some strange edge cases when loading worlds either from disk or across the network, or from savegames or directly.
    • Also some things to robustness in the display of galaxies when things go wrong during this load and you get in afterward.
  • Fixed it so that if you are trying to generate a galaxy with a null map type (possibly by loading a quick start or savegame that is using a map type that no longer exists), then it will choose a random map type and use that instead, rather than erroring and dying.
  • Really fixed a ton of different things that would give funky errors that were hard to interpret if the data was messed up enough.
    • These were all cases where we never have had data that messed up "in the wild," but as we get into multiplayer's alpha we may run into that from time to time and we want to make sure that we are able to have it recover more gracefully.
  • The way that savegames and quick starts and the lobby are loaded under the hood has been streamlined and simplified a lot, and made much more clear.
    • This is good news for them functioning really well with the new ability to load savegames and quickstarts into the lobby, and also very relevant for loading multiplayer savegames and into multiplayer lobbies. This was quite a thing to untangle, but now it makes our lives much easier in the future as we get into multiplayer alpha soon.
  • Fixed a harmless but annoying bug that could randomly pop up when trying to load some savegames and would give the message "ArcenDynamicTable<MercenaryGroupData>.GetRowByName() called with null/empty name"
    • Thanks to Malformata for reporting.
  • Fixed a bug that could happen when trying to load a faction that was referencing a named color that is not installed on the local machine for whatever reason. Whether that's for an expansion or mod, or the color was removed for some reason. It now assigns a random color instead, rather than failing to generate the game.
    • This was interfering with loading the Helping Hands scenarios for some reason in the most recent version of the game if you didn't have the expansion installed.
    • Thanks to ArkTheSpark, minnow990, Vola, and Roadrunner for reporting.
  • Fixed a variety of issues where the game could not load quick starts that were created with expansions enabled if you didn't have those same expansions and there were beacon-enable-able factions in that quick start.
    • The game now is able to deserialize expansion content no matter what by moving the "external data pattern" definitions into the main game, and also by making it so that missing ship entities get a dummy stub created for purposes of deserialization (and then being tossed away).
    • Thanks to Thanks to ArkTheSpark, minnow990, Vola, and Roadrunner for reporting.

Version 2.012 Populous

(Released March 26th, 2020)

  • Fix a bug where allied nanocaust could be hostile for a second or two after loading a save game
    • Thanks to GreatYng for the bug report
  • Fix a bug where Marauder Outpost strength wasn't appearing in the galaxy map
    • Thanks to Parch for reporting
  • Fix a bug where Spire Debris intended for a recently killed AI faction could cause a null reference
    • Reported by Cadbury and Admiral
  • Quiet some dev-only debugging code visible in the Threat window
    • Thanks to the crew of the USS Defiant for the report
  • Fix a crash in the BuildingDronesInternally metal flow planning code
    • Thanks to LCEnzo for reporting
  • Fix a bug where Dyson Spheres antagonized by hacking weren't actually doing anything
    • Thanks to Ovalcircle for a nice bug report with a save game
  • AI Mines on a given planet now decloak once the AI command station on that planet is killed
    • Should be a nice little QoL improvement. Suggested by a number of people, including corfe83
  • Fixed centerpieces occasionally reporting being under self construction, thus breaking them entirely.
    • Thanks to Lord of Nothing and Mayheim for reporting.
  • Exogalactic Attacks are not eligible to come through the Exogalactic Wormhole from Wormhole Invasions until the first other ships have come through the wormhole. It's still very hard, but you can see it coming so there's less RNG.
    • This is primarily for the DLC (since there are a lot more Exos there), but applies to the base game as well
    • Suggestion from Lord of Nothing, with additional bug reports by Strategic Sage and The Puffinster
  • Risk Analyzers now show their intensity-analogue in the Escape menu
    • Suggested by Ovalcircle
  • Remove some deprecated settings
    • Thanks to Sombre and ovalcircle for reporting
  • Fix a bug where Exos could sometimes wind up idle after killing their target
    • Thanks to Lord Of Nothing for reporting
  • Fixed the issue with loading Quickstarts/saves into the lobby, but not playing at all
    • Thanks Fluffiest for reporting, Democracy for testing, and Puffin for helping figure out the issue
  • Fixed a few more achievements that weren't triggering correctly
    • Thanks Lord Of Nothing for reporting
  • Added menu to the debug menu that allows players to select the currently playing music track.
    • Thanks DEMOCRACY_DEMOCRACY for suggesting, as well as Steam user "Micah" and "NB_FlankStrike" for reporting similar requests.
  • Fix a bug where usurpers would sometimes leave planets instead of capturing them
    • Thanks to Ovalcircle for reporting
  • Fixed up the Montserrat-Thin font, which would get very distorted when shown in small pixel space on the game. Now it has enough data in there to render precisely even when very small.
    • This should help in a variety of parts of the interface, but most notably in the chat window when your screen resolution is very small.

Lobby Fixes / Improvements

  • The "can edit presets" debug setting has been removed, and the editing of savegames and presets into the lobby is now supported for everyone.
    • There may still be problems with this that we need to iron out, but we're getting there and everyone should at least be aware of the option.
  • When loading a savegame or quick start into the lobby, it no longer has any problems with "factions that must be discovered" showing up inappropriately.
    • Thanks to a lot of players for reporting.
  • Loading a quick start into the lobby no longer requires you have a campaign name first.
  • The factions that are discoverable in a game, but not yet discovered, are now shown at the bottom of the list of factions as (Discoverable) in the escape menu.
  • Fixed a bug that was allowing you to add more than one Zenith Trader or Devourer Golem or other "must only be one" factions.
    • This had then led to a variety of other bugs after that, but we're less concerned about those since the core thing can no longer happen.
    • Thanks to DEMOCRACY_DEMOCRACY and StarKeep for reporting.

Forward-Compatible Settings and Profiles

  • Made it so that settings files and input bindings files -- from this version onward -- are now forwards-compatible.
    • Aka, if you load a version 2.016 settings file in version 2.012, then it would let you do that. In the past, loading a version 2.012 file in 2.011 would cause it to show an error message and toss out all your settings.
  • The player profile is now stored in an xml format rather than the char field format that it was using before, which allows for hand-editing if we ever need to and is more flexible in general.
    • The player profile also now is forward-compatible from version 2.012 onwards, like the settings and player inputs.
    • Thanks to a variety of players, but including Shnatsel, for suggesting.

Changes for The Spire Rises DLC

  • Shifted the values for Fallen Spire exogalactic-strikes around, resulting in low AIP being stronger, and higher AIP not increasing as much.
    • Big thanks to Astilious for reporting and assisting in sorting out the problem.
  • Fix a bug with the hacking sidebar that was causing numbers not to display properly
    • Thanks to Dominus for doing some useful debugging. Thanks to ParadoxSong and Ranakastrasz for the bug reports
  • Fix a bug where mark 7 scourge would try to refuse to fight by constantly thinking they could upgrade
    • Thanks to Ecthelon for the bug report
  • Fix a bug where player or minor faction allied scourge wouldn't realize that the AI Overlord was a legit target
    • Thanks to ArnaudB for the bug report
  • Fix a bug where the Fallen Spire beacon was available even if the Fallen Spire faction was enabled in the game lobby
    • Thanks to Strategic Sage for the bug report
  • Fix a bug where relic trains could go to the AI overlord early
    • Thanks to Lord of Nothing for reporting
  • Fix a bug where the Imperial Spire Fleet was attacking an invulnerable Overlord instead of destroying the guard posts
    • Thanks to Oryutzen for reporting
  • Exos that kill a Spire City no longer get stuck afterwards
    • Thanks to Lord Of Nothing for reporting
  • The scourge was getting stuck if the only path to any target was extremely well defended
    • This was only happening in very late game scenarios with the fallen spire on for certain map types
    • Thanks to Lord of Nothing for reporting

Macrophage Phase 3 - Multi Phage Takeover

  • The Macrophage are now a credible threat. You can have as many of them as you want, and they are fully capable of eating entire chunks of the galaxy on higher intensities. Be warned.

Base Game Changes

  • You can now have multiple Macrophage per game, and they can have seperate allegiences set.
    • If Spores from different Macrophage factions meet; and there are enough unique Spores on the planet to spawn a Telium, one of the spores at random gets priority for deciding whom the new Telium belongs to.
      • Tamed still has absolute priority.
    • There is still only a single Tamed faction.
      • You are still unable to tame any Macrophage subfactions that are friendly to players.
    • There is still only a single Enraged faction.
      • They will still eat everything.
  • Added in two new spawn options for Macrophage: Lone Telium and Clustered Telia.
    • Lone Telium spawns a single Telium for the Subfaction.
      • This Lone Telium is always berserk, never produces spores, its harvesters are much more defensive, and its harvesters only enrage when it dies.
    • Clustered Telia spawns Telia on half as many planets, but spawns 2 Telia per planet.
      • Added in a new quickstart, the Buggalactic War, which makes use of all the spawning styles.
  • Spawn event costs now scale with the number of harvesters that a Telium owns.
    • Base event cost reduced to 125k Metal. (175k for hostile-to-player)
    • On Intensity 5, the cost is increased by 35% for each (non enraged) harvester owned.
      • This value scales with intensity, being 20% at Intensity 10, and 47% at Intensity 1.
      • Tamed is considered Intensity 10 for this purpose.
  • Spore event chance now decreases by 2% for every Telia in the galaxy.
  • Spore event chance is now clamped between 25% and 75%.
  • Higher Mark Macrophage break and snack for longer.
  • Enraged Macrophage snack on homeworlds for thrice as long as they do other planets.
  • Updated the Macrophage Attacking message to no longer spam the log when you kill a large Telium.
  • Tame Telium hack reduced to 25 HaP cost.
  • Chance for Enraged Harvesters to attack the ai starts at 50%, and increases as your Tamed Telia start to outnumber Wild, up until they reach 90%.
  • Gave a facelift to various descriptions such as hacking and entity appenders.

The Spire Rises DLC Changes

  • When a Macrophage faction gets debris, it will upgrade one of its Telia into a powerful Spire Infested Telia.
    • A Spire Infested Telia is equipped with a multitude of short ranged Reaper beams, and is capable of (slow) movement. Be wary.
      • If you manage to kill this Telia, the Macrophage that its part of will be unable to build new Spire Infested Harvesters until they acquire new Debris.
      • You can optionally attempt to hack it to steal the debris, gaining double the science you would from a normal debris.
        • Perhaps its not the best idea to enrage the already powerful bugs that are more powerful than normal.

Balance Tweaks

  • Halved durability of AI Tachyon Sentinels.
  • Black Hole Machines affect units of engine gx 20 and lower, rather than 14. Crippled units can now leave regardless, preventing possible softlocks. Flagship engine gx reduced slightly to be affected.
  • Black Hole Machine, Raid Engine and Magnifier now die with the Command Station.
  • AI Turrets are now at least 75% of the range of player ones.
  • Added numerous AI Ship Groups.
    • Some things of note:
    • There are 50ish Turret Groups, 37 Strikecraft/Frigate groups, and 14 Dire Guard Post groups all added.
    • Swarmer AI has more variety/difference in what it likes to bring.
    • Fortress Baron is the only AI type to have Mini Forts, as a unique thing for it.
    • Turtle AI has 6x the reinforcement group count as before.
      • These vary as to which AIs they are assigned. More specific AI types don't have all of them, while Full Ensemble has most.
      • Many Turret groups require the first DLC to ever show up, and some groups use both base game and DLC Turrets. If you don't have the DLC, those'll just look like normal mono-Turret groups.
  • Some range nerfs to some Extragalactic units. Range and speed nerf to AI Dragon.
  • Dire Plasma Guardian no longer has Overdrive effect, instead is just a larger Plasma Guardian.
    • Nasty interactions with Fallen Spire, particularly the Great Shield.
    • Thanks to Lord of Nothing for reporting.
  • Upgraded AI Fortress power. Large upgrade to AI Super Fortress power.
  • Increased Stingray damage and durability by 40%, metal cost by 60%.
  • Tripled Ion Disruptor damage.
  • Sentinel Gunboat damage increased 60%, metal cost doubled.
  • Ranger damage increased 60%, metal cost increased 50%.
  • Medic Gunboat now has vampirism, metal cost doubled.
  • Agravic Pod and Aggressor damage increased 30%.
  • Raider and Dagger damage increased 50%.
  • Grenade Launcher Corvette and Molotov reload time 12s -> 9s.
  • Guard Posts and Dire Guard Posts now use the same armour/albedo stats as their relevant Guardian, if they have one.
  • Put a small bit of Dire Guard Post shield into hull, going from a 1:5 ratio to a 1:3.

Balance Tweaks (The Spire Rises DLC)

  • Both Spy Cradles vision range increased by 1, both have very powerful planet wide tachyon systems.
  • Buttress has same durability as normal structures rather than less, requires MK4 city rather than 5, uses 2 sockets rather than 4, has the same effects as a Black Hole Machine, but the gravity part is planet wide.
    • Made the lower tier Extra-Galactic War units susceptible to this.
  • Small tweak to Relic chase force sizes as you progress through Fallen Spire.

Version 2.009 Plenty Of Tuning

(Released March 9th, 2020)

  • Fix several bugs related to forcefields not handling norris effect stuff properly
    • reported by Fluffiest, Xenorius, ussdefiant and gigastar
  • Centerpieces are now always visible even when crippled on both planets and the galaxy map, though still no longer grant vision of anything else when crippled
    • reported most recently by Chthon
  • Add some defensive code to the Overall Power Level code paths
    • Thanks to ArnaudB for reporting
  • When trying to find a random AI faction for things, try to pick a living faction
    • Thanks to GreatYng for reporting
  • Fix a bug with tooltips for units in Fireteams
    • Thanks to a number of people including ParadoxSong for reporting.
  • The icons in the bottom right corner, under the selected ships, no longer try to draw text. That was way too small and thus always hard to read and looked blurry. That happens in any text editor, too. Instead, it just relies on the icons, which are now larger and thus also themselves draw more clearly. There are tooltips for anyone forgetting what they do. The hotkeys for these functions are still shown via text, no problem, though.
  • Fix a bug in the Save Presets code
    • Thanks to ParadoxSong for the bug report and Dominus for the fix

Dyson

  • New Dyson Antagonizer rules
    • Dyson Antagonizers must spawn on Explored planets
    • Dyson Antagonizers are Always Visible, even if you have out of date information about the planet
      • Requested by a number of people
  • Fix the Dyson Antagonizer not respecting the Dyson Intensity for spawning, and spawning much more often than intended.

Marauders

  • Fix a bug where Marauders weren't spawning turrets for their outposts.
  • Hopefully fix a bug where hostile-to-all marauders weren't killing AI command stations
  • Fix a bug where marauder outposts were spawning much too quickly.
    • Net nerf to the marauders; they require much more time to scale up after capturing a planet. I've heard some complaints that the marauders are really getting out of control quickly, and that should no longer be possible.
    • Thanks to the crew of the USS Defiant for reminding me about this

Spire Rises changes

  • Further clarify the description text on the AI Spire Research Lab
    • Thanks to Lord Of Nothing for reporting
  • Spire Debris is no longer allowed to join fireteams
    • Thanks to Smaug for reporting
  • Prevent multiple Spire Cities from being built on the same planet.
    • Thanks to Ovalcircle for reporting
  • AI-allied scourge at intensity > 5 have a chance of building an additional guard post next to any spawner or armory they create. Should make trying to attack the scourge infrastructure a bit more challenging. This code is readily expandable to spawning other AI structures as well if desired
    • From a conversation with a particularly depraved Peltian sympathizer
  • Make doubly sure that spire relics can't spawn on AI homeworlds
    • pointed out by XTRMNTR2K on steam
  • Improve player-allied scourge target selection in the mid/late game
    • Thanks to Ecthelon for a useful save game for debugging
  • If the Imperial Spire Fleet detects your home planet is under attack, they will prioritize defending it
    • Thanks to ArnaudB for the bug report
  • Add additional debugging code to the Spire Sim code
    • Thanks to Admiral for the bug report

Version 2.008 Transport Loading Hotfix

(Released March 4th, 2020)

  • Fixed a bug where ships would unload properly from transports, but never load into them again, in the prior version.
    • This was a casualty of the many changes we made in order to facilitate the performance improvements, but was quick to fix once people reported it. Apologies for that and anything else that crops up!
    • Thanks to Strategic Sage and Daniexpert for reporting.
  • Imperial Spire vessels are now MK7.
  • There is now extra debugging information shown visibly if the fallen spire actually has an issue.
    • Before it would just silently spam the log.
  • When a unit is trying to transform and it is in an invalid state, it now gives a more clear error message.
  • When centerpieces die, they are now blanked out properly; previously it held onto them in a dead format but mostly-removed, and this could cause some funky errors in the fallen spire in particular, but possibly other places eventually.
    • This was something that the squad wrappers we used to use automatically filtered for, so that's why it pops up now but not previously. It's a lot more efficient the new way, but we needed this extra check for this strange edge case.
    • Thanks to Puffin for reporting.

Version 2.007 Speed Boost

(Released March 4th, 2020)

  • When hovering a tech line in the science sidebar, it now lists the ships lines to be upgraded first by mobile ships, then by turrets, instead of always in alphabetical order
  • If remains cannot be rebuilt for some reason, it now shows the reason in the hovertext for those remains. This fixes a lot of ambiguity!
    • It also includes the countdown timers for things that can't be rebuilt for a certain amount of time with/without enemies.
  • Improved the priorities of repairs and other metal expenditures so that it makes more sense. Command stations with next to no health will now be prioritized extra for repairs even if there's a big ship to complain.
    • In cases where there was a giant golem to expensively complain, it often would not let you even choose to override that and spend metal on repairing the command station. Now that works properly, and at least some engineers will break off to repair things even with a giant capturable there.
    • Thanks to Smaug for a savegame where the command station was just impossible to repair while the unclaimed golem was still present.
  • The 'cancel hack' popup now reminds the player that you still pay the full hacking points value

Bugfixes

  • Remove a debugging line related to Dyson Spheres that was left enabled by accident
    • Thanks to a number of people for reporting
  • Make it much harder for structures to start to rebuild themselves mid battle.
    • Thanks to Ubifan for reporting
  • Fix a very long-standing bug where the Threat Count in the resource bar was sometimes counting Warden or Praetorian units
  • Fixed Fleet Centerpieces vanishing from the galaxy map if they were crippled, then moved to a planet that was only Explored.
    • Thanks to Ubifan, Daniexpert and Histidine for reporting.
  • Fixed a bug where command stations still under construction could still help with claiming other ships.
  • Fixed a really longstanding bug where ships that were overkilled that were in a stack were not rolling over their damage properly.
    • They actually were winding up over-healing the health of the next ship in the stack, not causing over-damage.
  • It was somehow possible to have ships with zero health that did not die, seemingly only since the other performance improvements below but frankly the code was pretty unrelated to the area we can think of.
    • These now automatically re-check for dying within the next sim step, and do so properly. This is a nice safety net in general to have, we suppose.
  • Fixed an issue where it would usually return a spurious "." at the start of type names it could not find.
  • When PerFrame_CalculateEffectiveFleetData on fleets has an exception, it now gives more info on where that happened.
    • Fixed an exception that could happen due to centerpieces not fully deserializing into their fleet lines properly. That only seemed to matter for drone producers, but it was a thing.
      • This fix also fixed a common thing that could happen when exiting out of really large savegames to the main menu.

Performance Improvements

  • Improved performance slightly on player planetary fleets without a centerpiece (aka command station), to basically not do all the checking and counts for them. Every planet has a fleet like that for every human player, so doing some checking like that on all of them was a mild expense that was not worth it.
  • Put in some more debugging variables that let us turn off more parts of the simulation to find performance hotspots.
  • Moved some logic for entity removal to be slightly more centralized, which makes it less common and also thus something that doesn't ever accidentally add the same entity to a big list more than once. There is some performance gain from this, but it's not huge in the current scheme of things.
  • SquadCountsByType is now an int array rather than an ArcenSparseLookup, which makes it much much faster.
  • MetalIncomePerPlanet_ForUI and EnergyProducedPerPlanet_ForUIOnly have become simple integers on the actual planet, and are handled in a much more efficient fashion since they are local-player-UI-only.
  • Added a new ArcenLinkedList<> class, which is a new specialist collection that is thread-safe, multiplayer-safe, and extremely high performance to iterate over, add to, and remove from.
    • We're replacing all instances of ArcenMob<>, and the rollup uses of List<>, with this new class.
    • This sees a massive improvement in speed in a lot of savegames, and the removal of micro-stutters relating to entities being removed from lists in general. This also sees a big improvement in how quickly you can get back out to the main menu.
    • It's a lot of code changes, though, so it's always possible we made some sort of mistake in this and are causing a new bug somewhere. Fingers crossed that's not the case, but the places it would be a problem are usually central enough that it should be wildly obvious. So far we're not seeing that.
    • Thanks to zeusalmighty for the savegame that helped us pinpoint the fact that ship/shot removal was being the biggest performance drain at the moment. His savegame went from a choppy 45-55% performance to smooth 100% performance.
  • Revised the Fleets class to no longer use Squad Wrappers, but instead to directly use squads.
    • This causes a slight performance boost in general, and will allow us to use performance-boosting collections that don't work on structs like SquadWrapper.
    • There's also the possibility for some errant bugs here and there, but we think we caught all of those, as they followed a specific pattern.
  • The list of ships inside each fleet membership are now handled via the new linked lists rather than normal lists, extending the speed benefits to them.
    • Most of the "performance trouble" saves that we've collected over the last months now run at full speed, where some used to run at 5%. A couple still only run at about 80%, but those are by far the minority.
      • It is worth noting that just starting a new game at 300 planets will put you immediately at 70-80% sim speed right from the start. Apparently there is something we're doing that is still inescapably planet-bound in terms of calculation cost, even though the number of ships is 1/3 or less of that of much beefier later-game saves that now run at 100% speed. We may need to lower the max number of planets in any map to being more like 140 or so.

DLC changes

  • AI extragalactic response no longer counts its own scourge allies when deciding whether to spawn extragalactic war ships
    • Thanks to Strategic Sage for the bug report
  • Make the Scourge Beacon Hack more costly and harder
    • Thanks to Strategic Sage for the suggestion
  • Awakened Scourge allies should show up in the escape menu now
    • Thanks to vinco for the bug report
  • Fix a bug where the Imperial Spire wasn't pressing home its attacks
    • Thanks to Astillious
  • Fixed the new Arks being unable to rebuild remains.
    • Thanks to Ryulong for reporting.
  • The Objectives for killing the AI Spire Citadel/Research Lab only appear once you have Explored those planets
  • There is now a Spire Beacon, and hacking it activates the Spire Quest.
    • This is only available for new games, it's not retroactive
    • Thanks to SCUD on steam for reminding us about this.
  • The Scourge's Overall Power level can now go up to 1.5 if it has a Nemesis
    • Only relevant for player or minor faction allied scourge

Balance Tweaks (The Spire Rises DLC)

  • Increased durability of Scourge Spawners and Armouries by 50%. Added Forcefields to both.

Balance Tweaks (Base Game)

  • Raid Frigate, Bounty Hunter and Apparition mass 4 -> 5.
  • Raid Frigate damage 5,000 -> 3,500.
  • Dyson and Dark Spire units are immune to being captured.
    • This solves some nasty faction interactions, such as an AI Wendigo finding a nice tasty group of Dark Spire to eat, or the Nanocaust gaining enormous hordes of units.
    • Also fixes some possible player shenanigans using Hacks.
      • Thanks to ArnaudB for reporting a Dark Spire and Nanocaust incident, Histidine for reporting a Wendigo problem, and Fluffiest for suggesting (all separately).

Version 2.006 Hotfix

(Released February 29th, 2020)

  • Viral Shredders now inherit pursuit mode
    • Thanks to Ecthelon for the bug report
  • Quiet some text in the galaxy view hover-planet view. We don't want planets being suddenly Nomadic or anything...
    • Thanks to Fluffiest for reporting
  • Improve the hovertext for AI Spire Research Labs to clarify that they violate other city placement rules
    • As a result of some discussions on discord
  • Fix a bug where you couldn't build Spire structures if the Spire Flagship (but not the city) was crippled
    • Thanks to WolfWhiteFire for reporting
  • Tweaks to the Spire Debris; Debris can no longer be captured by another faction while you are hacking it. The Spire Debris spawn message now shows the correct time that the debris will last for the first debris.
    • Thanks to Vinco for reporting
  • Add some additional debugging code to PreFillFactionBasedData.
    • Thanks to Binary Blitz for the bug report
  • Fix a bug where Outguard hacks were causing the hacking history menu to crash. Add some defensive code there too
    • Thanks to Strategic Sage's thot bug reporting ways
  • Improve the 'ai stops doing anything once it's killed' code to make sure that Anti-MDC exos are no longer spawned after the Overlord is killed
    • Thanks to GreatYng for the bug report
  • You now know which faction will capture Spire Debris if you don't get to it in time. This lets you make informed decisions about which debris you want to prioritize.
    • You also get 3 debris per City instead of 2.
    • Suggested by Starkelp
  • Fixed Viral Shredder copies being swappable, allowing for infinite lines in a single Fleet.
    • Thanks to Lampshade for reporting.
  • Put in defensive coding against some rare nullref exceptions that could happen during some combination of scourge and fallen spire, but which we weren't able to directly duplicate.
    • Thanks to ArnaudB for reporting.
  • Removed the maximum Mark restriction set on Battlestations, Citadels, and Home Forcefields.
    • They now go to Mark 7 like normal.

Version 2.005 Hotfix

(Released February 28th, 2020)

  • Fixed an invalid cast exception that could happen in GetScourgeGlobalDataExt for unexpected reasons if the scourge had wrong metadata for some reason.
  • Definitely fixed the minor capturables exception in mapgen, so that even if it ever happens in the future (even mods could validly cause this), it will just silently log a note in case developers need it, but keep everything on the interface running smoothly. The actual error in this case was related to an expansion, but a mod could easily cause the same thing, and in neither case is it actually a bug or something to notify the user about.
    • Thanks to Jodan008 for letting us know this was still happening.
  • Fixed an issue in the most recent hotfix related to dyson antagonizers not being found.
    • Thanks to ArnaudB and Yog-Sothoth for reporting.

Version 2.004 Hotfix

(Released February 28th, 2020)

  • Fixed units with ShouldNeverBeCapturedByAnotherFaction set to true, such as Tesla Torpedo Frigates, from being loaded into Transports.
    • Thanks to Ubifan for reporting.
  • Clarify the Scourge Neinzul Fortress text to mention that it produces hostile to all zombies
    • Thanks to vinco for reporting
  • Fixed a mapgen error that could happen for people without the new expansion installed. Apologies for that!

Version 2.002 Turret Icons

(Released February 27th, 2020)

  • All 30 of the new turrets now have updated flair denoting what they are. Definitely important for seeing from a distance and in the sidebar what they are!

Version 2.001 Expansion 1: The Spire Rises!

(Released February 27th, 2020)

Prior Release Notes

AI War 2: The Grand New AI