AI War 2:The Refinement of Fleets

From Arcen Wiki
Jump to navigation Jump to search

Contents

Known Issues

  • Multiplayer is disabled until post-1.0 while we focus on tightening up the single-player loop (more info here).
  • There are a variety of ships/units that don't have final graphics at the moment, though they all have their icons.
  • We're in progress with refining things with fleets more to remove things that are annoying or tedious about them. More info on that is here.

What's this phase all about?

The fleets work of the prior phase turned out to be a much larger undertaking than initially expected, but we also refined a whole bunch of other areas of the game at the same time. Finally implementing the new lobby and how a lot of that works, for instance. So a whole bunch of great things happened.

The downside was that there were still some things that were decidedly annoying that we know we want to tackle, and that's what this phase is about. Making sure that nobody's playstyles are removed or invalid, and that everything feels balanced, and that there's enough to capture and think about, and that there's no substantial "netflix time" where you're just waiting around (unlike the first game). A lot of the initial discussions about all this were here, but other discussions were on discord and other places.

We're also continuing to just fix other bugs and annoyances, and in general working on refining everything now that we're out of beta for the new fleets-based paradigm.

Version 0.885

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

  • Add achievements for how much AIP you can reduce by hacking the superterminal
    • Currently untested, like most of the achievements

Praetorian Guard Has Arrived

  • Praetorian Guard is now in the game. The Praetorian Guard is the Bodyguard of the AI overlord. They defend the region right around the AI homeworlds.
  • Threat now transfers to the Praetorian Guard when the AI King is under attack.
  • If the King is under attack then nearby Guards join the praetorian guard, they don't become Threat
    • Previously the AI home planet's defenses would all turn to Threat or Hunter fleet when attacked, so a typical strategy was "Attack the AI homeworld as a feint. Then retreat and wait for all the AI homeworld defensive Guardians to fly off to attack one of your planets. Then attack again". This should no longer work

ARS tweaks

  • ARSs can no longer be captured, only hacked. This prevents the case of "Player captures ARS but does not hack it, AI comes along and blows up ARS", which is undesirable.
    • Thanks to Democracy for reporting
  • ARSs can only be hacked by Combat Fleets
    • From some discussion on discord
  • ARSs can't give a fleet more than 5 ship lines

Bugfixes

  • Patrolling guards now count as 'guards' for the AI LongRangePlanning
  • Warden/Hunter now more accurately assess whether they should wait to attack, and will never wait if the king is under attack
  • Use the controlling faction (if appropriate) when determining the colour to make planet links, rather than a minor faction with Influence's colour
  • Fix a bug where the science extraction hack did not work against planets the AI has reconquered
    • Thanks to Zoreiss for reporting
  • Fixed a potential cause of the bug where orders and stance could be lost on ships when a stack was being split or one ship in a stack died.
    • Basically in the OnDeath logic we no longer need to clear orders at all.
    • Thanks to NRSirLimbo for reporting.
  • A HUGE amount of rework has been done with how orders are cleared from ships, and also regular move and decollision-move orders have been split out into two types.
    • This lets us do things like clear just decollision orders but not other things, and we also no longer have a bunch of things referring to Rally orders, which haven't existed for a while.
    • There may well be some bugs relating from this, but hopefully they are now easier to track down because the code is more sensibly-arranged for the current game design. It's possible that some things were previously working sometimes-but-not-always and will now work never, and that's actually preferable since we can then fix it to work always, once it's found.
    • This needs lots of testing, relating to queuing orders and issuing orders of various sorts, and seeing that the AI doesn't do strange things with its own orders, etc, etc, etc.
    • It's possible that this fixes the strange decollision logic when you queue a lot of move orders (that worked once upon a time, but has been broken since we revamped a bunch of the game code).
    • Thanks to WeaponMaster and RocketAssistedPuffin for reporting.
  • Decollision-move orders are now explicitly dumped when a ship goes through a wormhole from one planet to another.
    • Thanks to WeaponMaster for reporting.
  • Add some miscellaneous debugging code

Version 0.884 The Helping Hat

(Released August 26th, 2019)

  • Added colorization to the text of the buttons in the in-game escape menu to make it less overwhelming.
    • Resume is now a light blue, How to Play is now a vibrant green so people notice that, Debug Menu is now a dully gray so it's less intrusive, and Quit Game and Exit to Desktop are now light orange and red so that they are no longer so mixed up in the list of everything else.
    • Overall this should hopefully help people miss things less frequently in this menu, most-particularly the "how to play" bit.
    • Thanks to Badger for suggesting.
  • A new Hacking section has been added to the How to Play part of the game, and it has four topics: Basic, Getting More Points, Closest Hacker Gets The Reward, and The Three Styles.
    • Thanks to Badger for suggesting!

AI Improvements

  • Tweak hunter/warden logic to allow those fleets to camp on planets adjacent to the target instead of just diving straight in. This should make it harder for units to trickle in slowly and just die piecemeal.
    • I expect this logic to require additional changes down the road.
    • The problem was pointed out by Zoreiss who provided an invaluable save game for testing.

Bugfixes

  • Fix a bug where waves weren't spawning units
    • Reported by several people, including Starkelp and the Puffin of Grand Velocity
  • Make sure a unit's stance (eg FRD) is sticky across decollision
    • Reported by a lot of people, including mr. dave (Mantis), Hamendar, NihilRex, spleenshark, and minetime43 (steam) and various folks on discord as well
  • Fixed some bugs where decollision was causing units to do weird stuff; either overshooting or undershooting their destinations
    • Thanks to Puffin for reporting.
  • Fixed a bug where stacked units would be unselected when one of them was killed and the stack thus got smaller. Have not tested this yet, but should work.
    • Thanks to Puffin for reporting, and Badger for finding the problematic code area.
  • When the Dyson Sphere or Nanocaust cause NormalPlanetNastyPicks on their planet to die in the early game (or whenever, really), it should no longer charge you AIP or have any other on-death negative effects. Needs to be tested, though.
    • Thanks to Puffin for reporting.
  • Non-player ships that are headed toward a wormhole will never decollide now, no matter what their distance from the wormhole is.
  • Fixed an oversight (very old logic mixed with new logic) where stacks of ships could not get into transports. Needs to be tested.
    • Thanks to Zoreiss and NRSirLimbo for reporting, and Badger for finding the solution.
  • AI guardians and dire guardians are now allowed to stack, which also means that other things like nanocaust ships (which are flagged as such) are now also able to stack. This gives a pretty major performance boost in some games that were previously bogged down because of a ton of those sorts of ships that were not stacking.
    • Thanks to Puffin for finding this one!
  • Added SmallShipNotStackable and LargeShipNotStackable, which don't have the other AIGuardian logic or flags, but which prevent stacking of them.
    • Currently applied LargeShipNotStackable to: dark spire ships (is this needed?), dyson ships (is this needed?), macrophage harvesters (is this needed?), nanocaust ships (this is needed, for now at least, to not let them stack across different spawners).
    • Thanks to Badger for reporting the problems that the change to AI Guardians stacking logic could cause with some of the other factions. This makes the performance worse (for now) with the nanocaust again, but it does make it so that guardians are stackable.
  • Added SmallShipYesStacks and LargeShipYesStacks, which are like their non-stacking variants but do stack.
    • Now applied LargeShipYesStacks to: dark spire ships and dyson ships.
    • Macrophage ships are not supposed to stack, and are rare enough that they don't even need to. Nanocaust stuff will be dealt with later on, made to stack but only with extra conditionality.
    • Thanks to Badger for clarifying the needs here.
  • Hold fire mode, stop-to-shoot mode, group move, and the preferred targeting type now get copied over to replacement entities in many more cases (hopefully all of them): things like a stack splitting, one ship from a stack dying, ships respawning from a regenerator, etc.
    • The one exception is the hold-fire mode for ships that are coming out of a flagship (transport or otherwise) or being spawned at a flagship; those don't inherit the hold-fire mode.
    • Needs testing.
    • Thanks to Zoreiss for reporting.
  • When ships are being ordered to load into a transport, they now should ignore the stop-to-shoot mode just like they ignore pursuit mode. Needs testing.
    • Thanks to Zoreiss for reporting.
  • Make sure ARSs can only be successfully hacked once. Being able to grant bonus ships to all of your fleets would be much too strong
    • Puffin noticed that you could hack repeatedly

Balance Tweaks

  • Greatly decreased Warp Gate durability.
  • Increased durability of AI Command Station to match that of the Reconquest variant.
    • Oddity.
  • Decreased durability of Data Centers, Coprocessors, and Communication Nodes.
  • Super Fortress is now Mark 7.
    • Thanks to zeusalmighty for suggesting.
  • Fixed Agile Transport Flagship not being faster than normal.
  • Sentinel Gunboat and Ranger tachyon range increased a bit.
  • Astro Trains are now shown on the galaxy map.

Starting Fleets

  • Cloaked starting Fleet now has 80 Gunbots, up from 30.
  • Raid starting Fleet now has 80 Turbo Stingrays, up from 30.
  • Parasitic starting Fleet now has 4 Muggers, down from 8.

Version 0.882-0.883 Research and Reconquest

(Released August 20th, 2019)

  • Add a "Autobuild Factories" setting, to go with Autobuild Energy Collectors
    • Suggested by PokerChen
  • Added Magnifiers and Alarm Posts back in, thanks to the new shiny icons.
  • Updated the Facepunch Steamworks library to the very latest version, which has been heavily reworked in the last few months.
    • This should now function properly on OSX and Linux, although we've not directly tested this yet. It does work on windows, we know for sure.
    • On osx and linux, our hope is that even if it throws some sort of error while starting up, it will now properly show the main menu ships-flying background (not the main menu on a blank space background), and just more gracefully say that you didn't log in successfully for whatever reason.

UI Improvements

  • Slight improvement to the GCA hovertext and science type hovertext
  • Add an Objective for hacking the Dark Spire to get a ship type. Hopefully this will encourage players to note the other hacking options available for the Dark Spire as well.
  • 75 new ship icons have been added to the game, only 4 of which are actually going into immediate use (ARS, GCA, Faction Beacons, and Zenith Matter Converters).
    • The other 71 icons are for modders, us as devs -- whoever -- to be able to choose from and use in the future as needed. They fit with the feel of the game but can be used later as needed.
    • Whenever people were adding new ships they usually had to reuse icons, previously, but now they should have much more flexibility. This brings the total number of icons up to 221, not counting flair modifiers.
    • If you want to browse them for choosing, look in /AIW2ModdingAndGUI/Assets/Icons/OfficialGUI/GUIShipsWhite. Then just use the term Official/WhateverTheFilenameIs.

Get New Ship Lines: Advanced Research Stations Return!

  • Add Advanced Research Stations to the game. Each of these gets a Frigate or Strikecraft type; hacking the ARS grants that ship line to the hacking flagship.
    • The number seeded in the galaxy is tunable in the game lobby.
    • Cancelling this hack does not destroy the ARS (so that if you start with the wrong flagship you can cancel w/o penalty)
    • Note these will only appear in new games.

Balance

  • Nerf the amount of energy the Dark Spire gets from killing anti-AI zombies.
    • RockyBst's report: Dark spire gets stuck in a feedback loop. Spire ships move to human planets, get zombified, move back to spire worlds and die spawning more spire ships, move to human planets, get zombified... Within an hour a 3,000 strength strong wave of spire rolls over the human homeworld. Catastrophe indeed.
    • This should no longer be possible
  • Hacking a specific target (like an ARS) is now done by the flagship closest to the target. This gives players better control over which flagship should be used.
  • Hacking disables the cloaking system on the Flagship in question
    • This was mentioned as something that made the game easy by RockyBst. Some additional balance work may be needed here, if disabling cloaking entirely isn't desirable.

Reconquest Improvements

  • When the AI reconquers a planet, its Guard Posts will 'Warp In' over the next 10 minutes, each bringing with it a small company of guardians.
    • It was frustrating (particularly on high-mark planets) for the AI to instantly get hundreds of strength of defenses on a planet after reconquering. This now gives you a window to counterattack and destroy the helpless Warping In guard posts
  • Fix a bug where reconquest waves were using the Strength of a Usurper instead of the AICostToPurchase when spending its budget

Bugfixes

  • Put in a new destroy_on_load_if_more_than_this_number_on_planet xml flag that is used on the various guardians and eyes that can transform into other types, and set it to generally be around 10 for them, at least for now. In savegames where there were 27000 or similar of these, it now strips those down on load.
    • This is obviously just a band-aid in the main, but it's a useful tool for fixing existing savegames if nothing else.
    • Thanks to Ribald for reporting.
  • Put in a change that should make sure that units that are transforming, or being killed because of being hacked, or things along those lines, should definitely always get removed at the end of the frame when they are told to despawn.
    • There's not a huge amount of evidence for this functioning properly yet, but it seems to in preliminary testing. Basically if you are playing and start seeing way too many temperamental guardians again, then this is probably not working as well as we hoped.
    • Thanks to Ribald for reporting.
  • CPAs now use AICostToPurchase instead of Strength when calculating how many units to spawn
    • This is a significant buff to CPA strength. This bug was noticed due to some comments from zharmad.
  • For ships with more than one order queued up, you can now see the types of all the orders if you are viewing the non-abbreviated version of the tooltip for that ship.
  • Fixed a likely bug that was causing some AI movement orders to get queued up like crazy on ships, which was probably not the best for performance. If you have any issues with queuing orders or giving orders while a ship is rallying to the transport or whatever, please let us know with steps to repro.
  • Fixed several bugs where move commands could be set to the far lower left corner, particularly on decollision logic or assist logic.
  • In the escape menu, you can now see a list of how many of each gamecommandtype has been issued, and watch those count up as more are issued. This is helpful for knowing when a background thread is spamming the network/game-sim in general.
  • Special faction logic is no longer run while the game is paused.
  • Fixed a nullref exception in Helper_SendThreatOnRaid. We're actually really surprised this wasn't coming up in more savegames.
  • Fixed a bug that was causing temperamental guardians to duplicate themselves many times over, but also probably was causing some other issues.
    • Essentially it was possible for the DoEntitySecondLogic logic to run even on entities that were scheduled to be removed because they were dead or had just transformed, etc. This is no longer possible.
    • But also we now ensure that entities are properly processed into being removed even when the planet they are on is in the tier 2 or tier 3 battle status. The introduction of these had caused a delay in removal that was leading to this problem, so we fixed it from both ends.
    • Thanks to Badger for discovering the root of this.
  • Added a new Mat.DistanceBetweenPointsSIMD( ArcenPoint P1, ArcenPoint P2 ) method, which uses hardware-accelerated floating point math to get a distance between two points. This won't be quite sim-perfect, but given our correction algorithms that are planned the slight drift should be ok. And this does seem to be faster than Mat.ApproxDistanceBetweenPointsFast( ArcenPoint P1, ArcenPoint P2, Int32 ShortcutsBeyond ) in at least some cases.
  • We had an old method called FastGetIsPointOutsideGravWell(), and that was very frequently not noticing some places where ships could be placed out of the gravity well. Mainly to the southeast for some reason?
    • We're now using a replacement method, GetIsPointOutsideGravWell_SlowButCorrect(), which is using DistanceBetweenPointsSIMD to try to offset the slowness at least some. This keeps all the ships actually in the gravity well.
    • Thanks to zeusalmighty for the report that led to this discovery.
  • On load of savegames, there's now a new FixAnyShipsOutsideOfGravWells_OnLoadOnly() method that is run that brings any ships that were erroneously outside the gravity well back into the gravity well.
    • Thanks to zeusalmighty for reporting.

Performance Work

  • Put in a performance improvement to when there are really huge numbers of units on background planets; it now calculates their system status enabled/disabled stuff on frames that are being run if it's coarse-running them. Overall this is a much smaller part of the main-thread sim, now.
  • Started building out some performance-logging code that works kind of like a built-in simplistic profiler. It has less power than a true profiler, but vastly better performance and is something we can run more or less all the time so long as we're careful how we do it.
    • Right-clicking the time/paused button at the bottom of the screen now gives you that output. This is useful for savegames that are running slow for some reason, for us to be able to see where the load is. We do need to put in more granularity on that before we truly get fully useful data out of this, but it's a start and it has helped us find a few things.
  • Put in a lot more usability features with our new built-in profiling. It now splits out the profiling between nonsim, sim, and background threads.
    • This is something a regular profiler could never do, really, because those are too generalized anyway. At this point we can see how each of those three areas relate to each other, and to their constituent parts.
    • It's still not remotely clear why the sim is running very slowly in some specific late-game savegames (other than that there are a lot of ships in those savegames), but we're making some progress. Since the general framerate stays up, it's probably a matter of it waiting on background threads, or the sim steps having some sort of timing issue. That's part of what this profiling is for figuring out.
    • On the plus side, this does accentuate some areas where we recalculate certain UI elements WAY more frequently than needed; that's not causing the slowdowns we're seeing, but hey it should be easy to optimize in the coming days and will have some savings on people's CPUs.
  • Put in several optimizations that reduce the total tick count used by the UI to about a third of what it previously was (and now only about twice what the sim tick count is). Interestingly, this doesn't help our sim speed at all in most cases; we had thought that perhaps there was a contention issue with frame spacing causing timing issues with the sim. Looks like that's not the case, but a bit less load from the UI is certainly welcome in any case.
  • The ships sidebar ui is still lighter-weight than it was before, but some of the centralized code that was helping all of the ui be a bit lighter was causing a feel of lag in the tooltips even after we fixed things like tooltip flickering. So we're just going with the kind of middle-ground savings of ticks.
  • More investigation into the performance drops in certain circumstances. Curiously, there are some savegames which register 10x more ticks in the sim and simbg threads, and they run at perfect speed while these other games are running at 10% speed.
    • We added a lot more instrumentation in, and then tested turning that off to see if the instrumentation was slowing things down, and there was no appreciable difference.
    • We also added a number of small speed additions like making Gamecommands serialize more efficiently, not allowing the LookupSwaps to slow things down, and so on. None of this was really terribly effective in the short term with the problem saves, but it's stuff that is helpful to have in general.
  • The code timings window now properly includes the long-range-planning in the "MAIN SIMBG" category. Technically it's not actually part of that group, but close enough for now.
    • The findings for this show that these are extremely low load, which is what we had thought for a while, but some recent savegames were making us wonder. But the truth is these are absolutely trivial in size, which is good and the idea.
  • Additionally, the code timings window now lists how long each faction's long-range planning thread took the most recent time, which as you can see is slowly updated over quite a bit of time. The times are absurdly low and efficient even in very slow savegames at the moment.
  • Fixed an issue where some threads, particularly the long-range-planning ones, were lingering for 30 seconds and then dying while in a combo state of Background,WaitSleepJoin.
    • We're now detecting the WaitSleepJoin status and considering those threads terminated when they enter it.
    • This prevents us from using Thread.Sleep(ms) on background threads, since those would also get picked up by the above, but we haven't been using that and don't need to anyway. What seems to have been happening is that the threads are in Join status, and we needed to notice more quickly that they were gone without having aborted themselves.
    • The short of it is that this fixes some rampant "Thread 'specialFactionContext_4_AntiAIZombie' is in state Background, WaitSleepJoin after 30 seconds, so killing it now." style errors. These were happening for loads of threads that were barely doing 20ms worth of work, but then hanging around for 30s.
    • This doesn't really seem to help performance, but it should help AI responsiveness and should also help correctness. It's possible that this was mainly happening in the unity editor instead of the main game executable, but either way it's good to have fixed.

Decollision Frame-Splitting

  • The number of decollisions that have been scheduled and executed are both now shown in the escape menu.
    • This has the side effect of roughly showing how slow it sometimes is to run decollisions (depending on the load of your computer this could be more than 30 seconds for one iteration, which then gets you into ThreadAbortExceptions).
    • The number of those which are scheduled versus run is typically higher because they get stale if things run too long (ships die, move between planets, etc).
  • The decollisions thread is now split out over time like the target list planning thread is. It's only allowed to check 1000 ships per cycle, and only give 500 decollision orders at a time, now. With this, we took out the restriction on checking on planets that are tier 3, at least for now.
    • In some of our prime test games that run slowly, this process now takes 39 seconds to complete (but split up more over time, which is good for not bogging things down), and so this definitely explains why some people would have been getting ThreadAbortExceptions before when it was trying to run this whole thing in one cycle no matter what; longer than 30 seconds for one thread cycle, even on a long-running thread, and it's going to assume it hung and needs to be killed. It's meant to time-slice like this to avoid running anywhere close to 30 seconds, normally. Now each of these is probably a second or two, max, on a background thread per cycle.
    • This doesn't really improve overall performance in the bad cases, but it does help reduce the size of the decollision GameCommands being issued in all cases, which is good, and it also really reduces the number of stale decollisions in the slow savegames, since they are executed much more closely to their calculation time.
    • All the data for this is also now shown in the escape menu.

Stacks of Player Units

  • For the stacks that NPCs use, the minimum has dropped to 6 from 10, and the max to 200 from 1000, and the default to 50 from 75.
    • In late-game situations, this helps to keep performance a bit better.
  • Players now also get stacks, but theirs are fleet-based as well as planet-based, and their default is 30 out of a range from 6 to 90.
    • This range is a lot lower because of how these are broken up by fleet; but at any rate, they VASTLY improve the performance of a lot of late-game savegames where players get stupidly-high numbers of ships. Now you can have those stupid-high numbers as much as you want, without it eating your simulation speed.
    • This literally can take performance from 10% in some of our test games, all the way up to full speed.
    • This also fixed the decollision cycle time from being 39 seconds in one test case to instead being 2 seconds. Wowzers.
    • Thanks to zharmad for suggesting.
  • To prevent spam of decollision instructions (which now have their own separate gamecommand for easy identification), we now throttle these to only allow them to decollide a specific ship every 5 seconds, or 15 seconds if on a tier 3 planet. This gives ships time to actually move before getting new orders, and brings the decollision logic down to taking under 1 second where it took 39 seconds before.
  • The count of units present now includes those that are stacked, and transported units can now transport stacks as well.
    • We also put in some performance precaching work on these to calculate these things on the fleets where it is relevant, and only on those fleets. Performance is still suffering since adding this in, however, so we're having to look at that.

Version 0.881 AI Neighborhood Watch

(Released August 12th, 2019)

Interface Improvements

  • Clicking on the Threat portion of the resource bar will give a popup window listing all of the planets with threat
    • Requested by Puffin.
  • Improvements to AIP, threat and science resource bar clickable popups.
    • Add colour and change formatting to make things more readable.
  • Hovering a Wave notification now highlights the target planet. Clicking on the wave notification now centers you on that planet (if you were in the galaxy view), or jumps you to that planet (if you were in the planet view)
    • Suggested by zharmad.

Balance

  • Allow the Warden Fleet to purchase Golems.
    • Only for high Warden Difficulty settings and AIP, like how the Hunter Fleet picks up Dire Guardians.
  • Rework the way planet Mark Levels are set at game start time
    • The game now properly supports having multiple players/AIs in it when assigning mark levels
    • Mark VII and VI planets are now only near AI homeworlds, instead of having tons of them at random on the map
    • Always make sure that a player has at least 2 mark 1 planets nearby.
  • Fix a bug with marauders where they would suicide onto neutral worlds without paying attention to whether there were strong enemy forces on it. Slight buff to Marauder income.
  • Slight buffs to DS Vengeance Strikes on untouched VGs (those with really low conversion ratios.)

Bugfixes

  • Fix a bug where moving from units from the planet you are watching to a planet without any player units on it was causing units to warp across the map
    • Thanks to weaponmaster and zharmad for reporting.
  • Fix a divide by zero exception when doing Ion Cannon hacking.
  • Don't let players build structures that would put them in negative energy. Otherwise you can inadvertently turn off your force fields trying to build turrets.
  • Fix a bug in planet hovertext where it wasn't correctly identifying the allied faction colour for showing strength on planets.
  • Don't count Dark Spire units as Threat
  • Add some additional debugging for tracking Threat and for printing out game entities more efficiently
  • Fixed several possible nullref exceptions in the wave notifications (that were rare, but at least possible).
    • Thanks to BadgerBadger for reporting.
  • Put in some extra instrumentation that should help us know what is going on with the "late game frame freezes" that a few people reported.
    • Thanks to NRSirLimbo, zharmad, and BadgerBadger for reporting.
  • A new keybind (defaulting to F5) has been added to the Debug section: Dump Info From UI
    • Dump all of the info about currrently-displayed UI windows, and anything to do with why textboxes might be blocked as well, both to the log and to a popup window.
    • This gives a bunch of info that we should have made dump-able years ago, sigh -- why we didn't think of it, who knows! But if you're having trouble with a textbox not taking input, or part of the screen being non-clickable, or part of the screen being obscured with a big black background, then please hit F5 and send us the results that it puts into the ArcenDebugLog.txt in your PlayerData folder. It also will show you visually what is happening in a nicely-formatted fashion, so you might figure it out as you're even sending it to us what is wrong, who knows. Either way works for us!
    • Thanks to Badger for suggesting this, and the report of the black box area; and also thanks to zharmad for what is probably the same report in a different and earlier manifestation (or just two unfortunately similar issues).
  • Fix a bug where the 'capture a few planets early' objective was always visible. Also improve that objective tooltip to suggest a player capture a few Fleets or GCAs explicitly.

Version 0.880 Belatedly Finding Friends... And Enemies

(Released August 9th, 2019)

Quality of Life Improvements

  • Consolidate the Superterminal AIP log entries so they don't clutter things excessively
    • Thanks to zharmad for the bug report
  • Allow the AIP log to track the AIP floor, since otherwise the AIP log could wind up reporting numbers below the AIP floor if you'd done a ton of AIP reduction, which was confusing.
    • Note this will only be visible for AIP changes in new games or things that happen with this patch installed. Old events will keep the old behaviour
    • Prompted by a save game from zharmad
  • Neutral planets under the influence of a minor faction now appear as the colour of that minor faction, not neutral grey
    • Thanks to Zharmad for the suggestion, and props to Zharmad for lots of good bug reports and suggestions that appear in this release!
  • Fixed a confusing thing where you had to have the fleet selected as-a-fleet in order for transport loading and unloading to happen. This meant that things like hitting the "m" key to select all mobile combat units, or even drag-selecting to select a variety of ships, would not let them load and unload anymore.
    • Now as long as the flagship is selected, then it will work to initiate loading and unloading; still selecting a fleet as-a-fleet will work fine, but also just selecting the flagship-as-a-ship works.
    • Thanks to Zoreiss and Sigmar213 for reporting the confusion here.
  • Each Hunter/Warden fleet is restricted to only purchasing units available to its AI type
    • This will promote diversity among the various Hunter/Warden fleets
  • Allow the hunter fleet to purchase Dire Guardians.
    • Only for high Hunter Difficulty settings (7 or higher) and only at higher AIP levels (300 AIP or higher at difficulty 7)

Bugfixes

  • Add some additional defensive coding to the decollision planning threads
    • Prompted by a save game from zharmad
  • Fix a null reference exception in the neutral planet science hacking code that was preventing the AIP from updating
    • Thanks to zharmad for the bug report
  • Put in some defensive coding against hostile/friendly checks causing an out of range exception in some cases for things like shots that were dead, etc.
    • Thanks to NRSirLimbo for reporting.
  • Flagships are no longer nesting dolls that create copies of themselves on level up.
    • Thanks wm46 for the fix!
  • Fixes the bug causing bonus units to appear when you upgrade ship tech.
    • Thanks Badger and Puffin!
  • Fix a bug where Exogalactic Strikeforces weren't pressing home their attacks properly
    • Thanks to Puffin for reporting
  • Fix a null reference exception when cancelling hacks
  • Put in some code that should prevent some of the bouncing around of the background threads reading about metal flows on factions.
    • This probably only affected the UI and we were already buffering to avoid that being an issue, but just in case this is now fixed here, too.
  • Fixed an issue where the minimum number of planets to explore were often not being enforced properly on maps with a lot of choke points, or on snake maps in particular. It was making those maps have to be explored a single planet at a time, which of course is insanely hard to do.
    • Thanks to zharmad for reporting and for the savegame to repro.
  • Fixed a super longstanding bug where if you had an exception on map load (for instance during a quickstart starting), then it would not just give you the initial error, but would also corrupt all the icons on the sidebar and will give you infinite endless popups of error messages relating to the planet and/or entity hover boxes.
  • Fixed a bug where if you tried to create new quick starts, the game would give you three copies of the same main fleet rather than properly giving you the correct support fleet and battlestation to start out with in addition to the main fleet.
    • Thanks to Nyteblade and RocketAssistedPuffin for reporting.

Performance Boost: Coarse-Processing of BG Planets

  • Added a new setting to the Performance section of the galaxy map: "Advanced: Coarse-Process BG Planets"
    • Unless you are having a problem with the simulation for some reason, this should be left on. This makes background planets take up far less processing than they otherwise would, particularly when a bunch of third party factions are battling and you can't even see.
  • When the coarse-processing is on, then planets are divided into three tiers:
    • Tier 1 planets have a player looking at them or at least at them, and they work like normal.
    • Tier 2 planets have player ships at them but no player there.
    • Tier 3 planets have no player or player ships there.
    • Tier 2 and 3 planets both skip creating shots for any shots that are headed to any non-player ships, and just have them insta-hit. Same for AOE damage, etc. This is the number one performance-improver out of all this.
    • Tier 3 planets use very cheap square ranges instead of the usual circular ranges for everything from ships to gravity effects to collisions, which saves some processing power during big battles between unseen background factions in particular.
    • Tier 2 and 3 planets ony run updates every 10 sim steps, rather than every sim step, but act like they are on 10x speed for the sim steps they are on. All those planets are batched so that 1/10th of the planets get processed every sim step.
    • The overall savings on one of our test case games was to improve performance from 31% to 68% or more.
      • It really seems like we ought to be able to get these numbers even higher, but we're not sure just at this moment exactly what is sucking up the performance. Anyone who wants to pick at this and use more of the planet.BattleStatus_ProcessThisSimStep logic on non-long-term-threads and non-per-second methods is definitely welcome to look at it.
      • We also wanted to go ahead and get this in place sooner than later not just so that people can see the performance benefits immediately, but also so that if there are bugs resulting from this we have time to fix those.
  • A bunch of the shot-hitting logic, AOE logic, and related have been moved into the open-source parts of the game.
  • The escape menu now shows the counts of tier 1, 2, and 3 planets, the number of shots that have hit (since game load), and the number of entities that have died (also since game load).
    • This way you can get a sense for how things are progressing in the background if things are slow, for instance; and to be sure that shots are actually hitting and killing things.

Discoverable Factions

  • Some factions are now Discoverable in the game. This means that if the player doesn't explicitly request this minor faction in the game lobby, a unique structure for that faction will be seeded in the game and hacking/destroying that structure will cause them to become active.
    • So if the player requests the Marauders, they get the Marauders. If they don't request Marauders then they'll get a Marauder Structure seeded on the map, and destroying that structure will enable the Marauders.
    • Currently the Devourer, Nanocaust, Human Resistance Fighters and Marauders are available this way

Balance Tweaks

  • AI purchases from the Zenith Trader no longer give AIP
    • Thanks to Democracy for the suggestion.

Mercenaries

  • Changed a few of the named character Mercenaries to actually have varying units:
    • Lobar the Wolf now spawns a mix of Heavy Fusion Bombers and Vanguards.
    • Arnaud de Cervole now spawns a group of Aggressors and Paralysers.
    • Hereward the Wake now spawns a group of Velociraptors.
    • Xenophon now spawns Porcupines and MLRS Corvettes.
  • Xenophon is back to using the WarpOutAfterBattle behaviour. In addition, he can be hired twice as much.

Hacking

  • Hacking Response strength increased 50% on Diff >= 6.
  • Swapped the primary and secondary hack interval and response of the Super Terminal.
    • Now it starts to get stronger at a much faster rate, and should be a more significant challenge.
  • The Superterminal hack now comes with periodic exogalactic strikeforces, to make it harder to fleetball everything on the superterminal planet

Version 0.879 Many Fixes and the Tutorial Rework Starts

(Released August 7th, 2019)

  • The swap ship line interface now shows you how many ships are in the cap of each line you might be trading. This way you can more easily see the actual relative powers of ships with the same line type, for instance, but different caps.
    • Thanks to AnnoyingOrange for suggesting.

Balance

  • The "Officer Fleets" with the Arks and Golems should now generally be 3-5 planets away from the AI homeworlds, rather than directly adjacent to the AI homeworlds frequently like they were before.
    • There are still very very few of them, and if they feel like an afterthought then we really need to pump them up in terms of power. But they're expensive and far away so that they can be late-game ringers for you, exciting last conquests, essentially.
    • Thanks to AnnoyingOrange for reporting.
  • The "multiplied_frigate_ship_cap_for_mobile" and "multiplied_strikecraft_ship_cap_for_mobile" have been removed, as these were things that caused the number of ships to be increased at specific centerpieces.
    • Prior to us being able to swap units between lines, that was no problem. But now it's something that was just confusing, and there are better ways to accomplish the equivalent thing.
    • For Arks and Golems (officers), having larger fleets isn't really the point anyhow; they should be bigger and scarier on their own, and the fact that their fleets are not really better or worse than other fleets is fine.
      • In the future, we can make it so that they pull from a separate set of fleet designs that have larger caps built in, if we want, and the good thing is that then when there are ship swaps between fleets, the extra ships will transfer properly. There doesn't seem to be a need for that right now, but the important note is that it's actually possible if we do feel inclined.
    • This change is going to reduce the ship counts on a lot of the fleets, in existing savegames as well. If this is a problem, then please let us know and we can adjust the seeding count ranges on the fleet designs in order to rectify that. But in general it MAY be that people were having a few too many strikecraft and such anyhow, and that Golems/Arks are underpowered; we want you to feel inclinded/excited to pick up those officers in the late game, but it may have been that the regular ships were so plentiful that it wasn't really worth it.
    • Thanks to zharmad and AnnoyingOrange for reporting.

Other Tweaks

  • Updated some non-player units to have more relevant metal costs for Metabolization effects.
  • Plasma Turret and Beam Cannon health increased 50%.
  • Mercenary Flagships now have radar dampening, like Space Planes and Fortified Tesla units.

Bugfixes

  • Tweaks to hacker behaviour. A unit doing hacking now can move but cannot go through wormholes. Also unit hovertext now tells you if your unit is hacking. Also fix a bug where cancelling a hack didn't always clear the Active Hack, leading to units believing (incorrectly) that they were still hacking.
    • Thanks to zharmad, ArlenTektolnes and linux-tyyppi for bug reports.
  • Fixed a bug where if you started from a quick start but did not save your game, then it would remember your last saved game as being an invalid path based on the quickstart you chose.
  • Fixed a bug where transports with orders to attack (aka send unloaded and constructed units to attack) would move to the bottom left of the screen. This affects all ships that can receive attack orders that don't have weapons (currently just the transports).
    • Thanks to Diazo for the report.
  • Add some defensive code for a null reference exception in the entity hovertext
    • Thanks to AnnoyingOrange for reporting.
  • Previously if there was an exception that happened during the loading of xml data table info, then it would throw an invisible error and just have the interface sit there on the loading timer, never progressing. This led a lot of people to assume the game was frozen, which it kinda-sorta was but it really was still alive but just not in a state where it was showing you info properly or letting you progress.
    • Now it finishes loading properly, and then shows you the error message about whatever happened. You probably shouldn't play the game if this happens, but at least it won't be just invisibly hanging.
    • A lot of times you can cause these things if you're messing around with modding things yourself, and so modders were particularly likely to accidentally cause this for themselves if they had a typo or something.
  • A more CPU-expensive range check is now used for forcefields, which is also more accurate and prevents ships from getting stuck on the edge of them.
    • Thanks to trillioneyes, BadgerBadger, and Zoreiss for reporting, and WeaponMaster for fixing it.
  • Previously it was possible to make trades in such a way that you could indirectly cause two ships of the same line to be in a given fleet.
    • This was meant to be disallowed, but we missed a case of it, and as expected it led to all sorts of wonky results.
    • Fixed this so that it now shows the disallowed trade items, but in red so you know they are invalid (not just mysteriously missing), and you can click them to get an explanation of why they are invalid.
    • Thanks to zharmad for reporting.

Tutorials

  • Over on the right-hand side of the main menu screen, by the How To Play button, there is now a new Tutorials button.
    • Clicking this pops open a categorized selection of tutorials that you can play in order to learn more about the game.
  • When clicking the tutorials button, it now gives you the message "Tutorials Are Not Ready Yet!", "We're still working on the tutorials, and they're in no way ready to play just yet. There are some tutorials in place, but they're not functional; they're just there so we and any direct testers who want to mess with the new tutorial system can do so. This message will be removed when the real tutorials are in place."
    • Otherwise Chris was just going to keep delaying releasing other features while these were worked on, but that didn't seem like a great idea.
  • Autosave now works in tutorials, as does auto-building of units.
    • Basically we wanted things to be as consistent between tutorials and the main game as possible.
    • Tutorials also now save into campaigns that are auto-named based on the tutorial itself.

Tutorials Framework/Code Rework

  • The old "tutorial scenario" is no longer used, but instead the default scenario that regular games use is in place.
    • Same thing with the map seeding logic.
    • Generally speaking, we want the game to act the same in the tutorial and in non-tutorial games, and so having certain things just turn off in tutorials is a lot easier to do rather than trying to have a mostly-duplicative branch for tutorials.
  • The actual methods for generating a tutorial are now really different, and use the new tutorial objects themselves, which are completely configurable via xml.
    • These now let us add non-standard factions with custom data as needed, such as a friendly devourer golem or whatever we want.
    • It also lets us change the default data on specific factions, or remove factions that are normally there, all by xml.
  • The normal "try to seed special entities" logic still happens in tutorials, now, but doesn't complain at you if it can't find room to place whatever it is it wants to place.
    • Presumably you'll use a fixed map generation seed and thus always have the same result, and/or you'll (later when we add this ability) define some specific things on specific planets.
  • The old "external data" used by the tutorial scenario is now gone, and there's something a bit more direct and consistent that is being built into the main game engine itself. We still have more to do on that before tutorials are fully working again, though.
  • The map type "Tutorial_01" now reads in special map definition data embedded in the tutorial definitions themselves.
    • This lets you set up planet names, a map that is manually defined in any organization you wish, with planets linked as desired, and so on.
  • It's now possible to define which faction owns each planet in a tutorial galaxy, whether those were auto-created or manually defined.
  • For Dyson Spheres, if those are granted planets as part of this, they now get full control of those planets (for the moment). We can always adjust that or make that optional, but it does work and could be handy for now.
    • The Dyson Spheres were largely used as a test bed for putting in additional non-default factions that own planets, for the moment.

Version 0.878 Fleet Customization

(Released August 3rd, 2019)

Usability / New Players

  • Added a detailed new "How To Construct Ships and Structures" tip to the Getting Started section of the game tips.
    • Thanks to RocketAssistedPuffin for suggesting this.
  • Added an even-larger new "AI War 2: The Full 101-Level Explanation" tip to the Getting Started section of the game tips.
    • Thanks to RocketAssistedPuffin and _Zorbaz for writing this! If anyone has anything else they think we should add or change, please let us know.
  • Added a new "How To Scout New Planets" tip to the Getting Started section of the game tips.
    • This does seem rather important.

Ability To Swap Ship Lines Between Fleets

  • The long-awaited ability to swap ship types between mobile fleets has now arrived!
    • With this new ability, you can now fully theme your fleets as you like, while still having to work within the constraints of what you find.
    • Note that when this ability is invoked, it scraps all of the ships that are being swapped across; this prevents you either from having orphaned ships way across the galaxy that you then have to get to the proper place by hand, OR from having the new ability to teleport ships across the galaxy inappropriately.
    • Also please note that you can't swap in more ships of the exact same type that already exist in that fleet. So you can't have two groups of Raiders in one fleet, for instance. But you could have Raiders and Daggers (a Raiders variant) in there.
      • While we can see the appeal of having 3x raiders all in one fleet or something like that, it would be programmatically very difficult because you'd wind up losing a slot in the fleet with double-raiders, OR the display would get all funky.
    • Thanks to RocketAssistedPuffin and MaxAstro, and a lot of other people as well, really, for suggesting.

Transport Improvements

  • Fixed a variety of oversights where if you issued things like Load/Unload orders to transports it would only work on the planet you were looking at, and not at all if you were on the galaxy map. Same with things like changing pursuit mode on and off for selected units, etc. Now all these things work properly for all the units you have selected, as you would expect.
    • Thanks to Yog-Sothoth for reporting.
  • Transports now have a "loading mode" where everything is trying to load into it, and the things that are part of its fleet will skip all decollision logic even better now during that mode.
    • So if a ship is on the way to loading into a transport, you shouldn't see it knock anything out of the way or get knocked out of the way at all anymore, or something is off.
    • Thanks to Yog-Sothoth for suggesting.
  • The explanations for how transports work have been updated to reflect the new mechanics in this build.
  • When a fleet is in "attempting transport" mode, it now says that in the tooltip for the fleet as well as in the tooltip for the flagship of the fleet.
  • When you had a fleet in attempting-transport mode, and there were still some ships on the way to the transport to load up, but then you hit unload before those ships get there... now it gives them the same orders that the ships being unloaded are getting.
    • Actually, hitting L and then U is now a really quick way to copy all the orders from the flagship to all the ships on a planet in its fleet.
  • When a fleet is in "attempting transport" mode, then any new ships that would be spawned at the fleet just go into the transport immediately rather than appearing by the flagship.
    • This is really useful so you don't leave a trail of constructed ships in your wake of your transport as you fly off to fight an enemy if you've still got some ships constructing as you go.
    • Thanks to Yog-Sothoth for suggesting.
  • In the fleet sidebar popout window, it now doesn't cause ugly line-wrapping when you are transporting ships. Additionally, it now has an explanation with some tooltips about transporting ships, too.

Ability to Set Preferred Targets

  • The ability to set "Prefers To Target" types on your ships has been added.
    • This is a feature from the original AI War that just never made it into this game. But basically when you give orders to a ship or group of ships to target an enemy, that ship will then prefer targeting that ship type until you give it a different direct order (movement or attack).
    • This has not been extensively tested, but seems to work (it's possible that we may need some additive priority changes rather than multiplicative in some cases, though). It also does show you the status of the preferred targeting on the interface for ships when you look at them, now.
    • Thanks to Zoreiss for suggesting.
  • When the orders are copied from one ship to another, it now also copies the preferred target type over.

Balance

  • Snipers are now far more rare on the AI side, in terms of their likelihood of being chosen as a ship type at any given planet. And all the sniper variants.
  • Removed Etherjets and Thiefs from the player fleet types (will only affect new savegames). These are much more interesting in AI hands.
  • Removed AutoBombs and Nanoswarms from the BasicOffensiveMix, so that they are never part of the general fleets that get rolled.
    • These still show up in some specialist fleets, but in general won't be clogging things up for you anymore.
  • ZPG Rebalance:
    • Zenith Power Generators (as they existed before) no longer are purchasable from the Zenith Trader; they can only be found in the wild and captured.
    • A new variant of Zenith Power Generators, called Lesser Zenith Power Generators, are now purchasable from the Zenith Trader. These cost 1m less metal to construct, and produce 100k less energy. They also have a cap of only 2 per galaxy that you can construct.
      • The purpose of making these a split-out variant is so that the per-galaxy cap doesn't get mixed up between ones you capture and ones you construct.
      • The per-galaxy cap feature is new, and is an xml tag called galaxy_wide_cap_for_players_constructing.
        • Note this has not yet been tested, so if there are problems please do let us know and send a savegame. But it should work!
    • Thanks to Rune and firespier for reporting the exploits you could get up to with ZPGs prior to now.
  • Tachyon Sentinels are now shot at again by factions.
    • This was relevant before Fleets, where these were the main roadblock to the player scouting, but isn't useful anymore and instead just kinda weird.
    • Thanks to Democracy for mentioning this.

Watchman Frigates At All Your Command Stations

  • Added a new "Watchman Frigate" to the station-keepers section of all command station types that players can control.
    • Description: Small, fast station-keeping Frigate that aids in cleaning up straggler enemies that might otherwise camp out on your planets or hide just out of range of your turrets.
    • Your military and home command stations get 4 of these, logistical gets 3, and economic gets 2.
    • Why add these?
      • The only other built-in station-keeping frigates were the Station-Keeping Assault Frigates, and those were never available on economic command stations.
      • The assault frigates are stronger and more expensive, and let your project significant force.
      • The idea of the watchman frigates is that they are cheaper and weaker, but available everywhere; they may be too strong at the moment, but we can adjust those down as needed.
      • The core purpose behind the watchman frigates is to give you a small number of mobile ships on every planet, without you having to move fleets around, so that if a small ship or two gets past your defenses into your inner economic planets, you can defend against them without having to withdraw a fleet or try to play "chase me with turrets."
      • On the one hand you could argue that you need to be better at creating a shell around your economic planets, but frankly making an "annoyance tax" for stray units isn't how we'd really like to enforce that. The idea of these watchman frigates is to help with the minor cleanup where only a mobile ship will do, and we almost called them "Janitor Frigates" for that reason. If it's more than the janitor can handle, then hopefully your turrets are in good positions. If not, then... well, the onus is on you, and/or the AI did a good job of slipping your defenses.
      • The TLDR is that this is supposed to alleviate the annoying case where there's some small set of AI ships just out of reach on a planet of yours, and you need something, anything, that is mobile. But it's not supposed to be some major combatant or something.
    • Thanks to Diazo for suggesting.

New And Adjusted Player Fleet Designs To Discover

  • The "cloaked mix" player fleet design was never including any frigates, because no frigates were set up as compatible.
    • Now there are several different cloaked frigate options, including a new Cloaked Mugger frigate type.
    • All of the other player fleet designs (the randomized ones) included potential frigates already, so this was the only one needing that fix.
  • Added a new "HydraOffensiveMix" themed fleet design for player fleets, with 5 tickets (so quite rare still), and ONLY hydra type ships in it of various sorts, including new Warbird Hydra Frigates.
    • Thanks to Diazo for inspiring this addition.
  • Added a new "ClassicTrioMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it ONLY has the old core trio of ship types in it (v-wing, bomber, concussion corvette), but then also gets some interesting frigates to tag along as needed.
    • Thanks to Diazo for inspiring this addition.
  • Added a new "SlowHeavyStrikeMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it has no frigates but has more strikecraft types (or just more strikecraft if not more types), and is focused on ships that don't die very fast. (Vanguard, Pulsar Tank, all-new Heavy Fusion Bomber, all-new Heavy Stingray, all-new Tarantula).
    • Thanks to Diazo for inspiring this addition.
  • Added a new "AntiLargeStrikeMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it has no frigates but has more strikecraft types (or just more strikecraft if not more types), and is focused on fighting large opponents. (Pike Corvette, Porcupine, all-new Parasitic Pike Corvette, Fusion Bomber, Gunbot).
    • Thanks to Diazo for inspiring this addition.
  • Added a new "AntiSmallStrikeMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it has no frigates but has more strikecraft types (or just more strikecraft if not more types), and is focused on fighting small opponents. (Ablative Gatling, Concussion Corvette, Stalker, MLRSCorvette)
    • Thanks to Diazo for inspiring this addition.
  • Added a new "AntiStructureStrikeMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it has no frigates but has more strikecraft types (or just more strikecraft if not more types), and is focused on fighting structures. (Fusion Bomber, Anti-Shield Pulsar Tank, Paralyser, all-new Parasitic Fusion Bomber, all-new Heavy Fusion Bomber).
    • Thanks to Diazo for inspiring this addition.
  • Added a new "CrowdControlStrikeMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), and it has no frigates but has more strikecraft types (or just more strikecraft if not more types), and is focused on fighting large crowds of opponents. (Zapper, Grenade Launcher Corvette, Harasser, Molotov).
    • Thanks to Diazo for inspiring this addition.
  • Added a new "DebufferMix" themed fleet design for player fleets, with 10 tickets (so a bit more common), with the same ship type distribution as the most common designs, and entirely filled with units using things like knockback, engine stun, and so on (Brawler, Inhibiting Tesla Corvette, Terrier, Barnacle).

Bugfixes

  • For weapons that bypass enemy shields at least partially, it no longer says "assuming shields are down" if they also have a bonus to hull damage.
    • These were two semi-unrelated pieces of text that were combining in the auto-text-generation code on fusion bombers to write something contradictory, incorrect, and confusing.
    • Thanks to TechSY730 and DEMOCRACY_DEMOCRACY for reporting.
  • The selected ships/fleets window on the bottom right corner now shows up even when you have ships selected only on other planets than your current one.
    • That not appearing was confusing as heck, and also a legacy accidental piece of code we carried forward from an old selection model.
  • Fixed a super annoying bug where when you were selecting fleets via hotkeys it could retain part of your old selection of other fleets, or other strange things like that. It should now just work correctly in all cases.
    • Thanks to Zoreiss, Rune, Jaunty Jaun, and uhamster9 for reporting.
  • Put in new code that fixes issues with scrollable modal popups being pre-scrolled down partway when you are opening a subsequent one. Aka, you read to the bottom of one long tip, then open a new tip and it starts scrolled down rather than at the top. That was definitely disorienting!
  • The pause keybinds now respond to player in put while the modal info windows are open. This is useful in particular during the metal flows screen where you might want to pause the game with it open to stop it from moving around on you.
  • The self-updating modal window is now able to basically keep showing the last "positive data" for a developer-set amount of time, and only then switch over and show "negative data."
    • In practice, we're using this for the metal flows screen so that we only switch over to showing "no metal flows" after a full 2 seconds of no metal flows, and instead show whatever the last metal flows text was. There is some sort of cross-threading issue that leads to there frequently not being any data to show to the ui for the metal flows for part of each second, and this is okay, but having it constantly flipping over and showing that rather than the data it had just a part of a second ago was... suboptimal to say the least.
    • It wasn't actually glitchy before, but it felt like it because it was showing nothing during the updates of data on background threads, or something to that effect. Now it doesn't feel glitchy and you still get updates as often as needed.
  • Fixed a bug where the fleet bonus/penalty was rapidly flickering in the UI, as was the number of fleets at a planet.
    • This was probably not affecting gameplay, but was definitely annoying. We're basically just now double-buffering the calculations.
  • Fixed a couple of bugs that were causing ships to not shoot at targets that had extremely low health, thus leading to invincible units because the overkill code was kicking in improperly.
    • Thanks to Zoreiss for reporting the "invincible guard post" issue.
  • Added a new "Show incoming-shot debug data in unit tooltips" debug option in the personal settings, for seeing shots that are headed to a target.
    • Even with the overkill protection logic, there were some orphan shots still apparently hanging around in some way?
  • Fixed a bug that has been around since who knows when, where AOE attacks that failed to appear visually would never be removed from the sim.
    • This could lead to game slowdowns as well as all sorts of other problems (targeting issues, for instance).
    • This was likely causing problems when there was a lot of background combat, or combat on planets you were not viewing in general, since they would not even TRY to show up visually and then of course would fail to disappear.
    • Who knows how much of a drain this was on the sim in general, but it was also causing some correctness issues. All fixed now!
    • Thanks to Zoreiss for the report that led to this discovery.
  • When you hack a GCA, then upgrade the granted ships to a higher mark, they now get the bonus ships as intended.
    • Thanks wm46!

Performance Boost From Guard Self-Duplication Fix

  • The game now tries to deploy AI reinforcements in stacks (of up to 100 per stack), rather than as individual units that might then have to be stacked after that.
    • This keeps things like warden ninja hideouts from absolutely bogging down the simulation.
    • Thanks to Ribald for reporting.
  • If there are more than 10k units in a single reinforcement point somehow, then it will show an error message and reduce the number of units of that type in that point to be "merely" 10k.
    • There were some cases where there were several million units in one stack in the warden ninja guard post, which was definitely an error. The error popups will probably be annoying, but we want to know and fix these things if they happen.
    • The gap of 10k units in there keeps the error message from being absolutely constant in these cases, though.
    • Thanks to Ribald for reporting.
  • The ship counts in the escape menu now include ships that are contained in transports or in guard posts and other reinforcement points.
    • The difference in the counts is pretty telling, often tens of thousands or even hundreds of thousands more ships.
    • Also in the escape menu, it now shows the number of contained ships, and the number of containers, on the line right below stacks.
    • Thanks to Kesseleth and Ribald for helping us discover we needed this.
  • Fixed a pretty darn severe bug where the ships in the warden fleet (or any other AI guards, really) could multiply like crazy if it tried to put a stack of units into a guard post.
    • If there was a stack of 10 units, it would put 10 into the guard post but only destroy 1 of them. Then the next frame it would put 9 in and destroy 1, etc.
    • Most of the time this was not severe enough to notice, but if you were aggroing an AI planet really heavily and it was having ships coming in and out for various reasons, then it could easily get into situations of adding more than 10k ships in under 5 seconds.
    • This was probably slowing down the simulations of all sorts of savegames, but mainly those in civil war mode more than anything else. The stuff that reduces the reinforcement counts will help some, but older savegames are still going to be bloated most likely if they were problematic before.
    • This doesn't affect most savegames, but for those that it did affect it's going to be a good idea to just try something less off in its data. It's unclear how much of a performance problem we'll have with civil war mode on in a fresh savegame with this off.
    • Thanks to Kesseleth and Ribald for reports that led to this discovery.

Version 0.877 The Strikecraft Goldilocks Zone

(Released July 30th, 2019)

Bug Fixes

  • If building a command station would cost the player AIP, they get to scout when they pay the AIP price.
    • This typically happens if a hostile minor faction took out an AI command station and the player then captures the then-neutral planet
  • Remove mention of Scouts from the Intel tab
    • Reported by Puffin
  • Make sure Swirl maps are fully connected
    • Reported by Puffin
  • Prevent shots from flying to the bottom left of the screen when they can't find valid targets
    • Reported by a number of people, including Diakon, Ovalcircle, Apthorpe and ptarth
  • Don't let AI drones join the hunter fleet; they'll just go off planet and die
    • Reported by zeusalmighty. This might have already been fixed, but it's Even More Fixed now.
  • Make invulnerability checks more responsive. This prevents Eyes from sometimes staying invulnerable too long or not becoming invulnerable appropriately.
    • Reported by a number of people, including zeusalmighty, democracy and weaponmaster
  • Fix a bug where hunter/warden fleets were using the old Strength budget mechanism instead of the CostForAIToPurchase mechanism when getting new units. This was causing those fleets to be much weaker than they should be
    • Thanks to Democracy for reporting
  • Remove mention of destroying the ai command station from the Counterattack Notification hovertext
    • Thanks to Democracy for reporting
  • Fix a bug where in civil war mode, the AI could get into a loop spawning endless waves
    • The wave spawning code was trying to let hostile AIs share warp gates, but the "Has the warp gate been killed?" code doesn't allow sharing hostile warp gates. So we would schedule a wave, then immediately discover it was invalid and repeat infinitely.
    • Thanks to Ovalcircle for reporting
  • If you have a tip open, the escape key (Or whatever you changed it to) will close the tip. If there is no tip open, it closes the menu entirely.
    • Thanks UFO for reporting.
  • Prevent the Tutorial AI from being an option in the game lobby
    • Thanks to Badger and majordomo for the report and Dominus for the fix
  • Tweak Warden Fleet pathfinding to make it less apt to fly into defended positions
  • Put in several fixes to deserialization of some semi-older savegames (a month or so old), along with some added debugging outputs in general for savegame loading when there are issues.
  • Put in some code to fix when the game tries to read an invalid savegame and could get an out of memory exception when trying to read an absurd number of strings because of the malformed savegame. Now it fails more gracefully and doesn't ask your OS for way too much RAM.
  • You can now issue attack orders to your weapon-less fleet leaders (aka transports), although it's not yet clear if those will stick around. The point with this is to be able to queue up attack orders so that ships that come out of the transport (or get spawned at it via a factory) will attack the target assigned to the transport, even though the transport itself won't have anything to attack. We haven't tested this yet, though, and it probably needs more work.
    • Thanks to WeaponMaster for reporting.
  • Yet more robustness has been built into loading savegames after a weapon or other system has been removed from a ship. This particular fix is for ships that still had systems (like cloaking), but which had a weapon in the list prior to the cloaking system before. That was causing savegames to be un-loadable now, but now they'll load fine.
    • Thanks to HeartHunter7 and BadgerBadger for reporting.
  • Fixed an exception that could happen when unselecting units, based on some cross-threading race conditions.
    • Thanks to NRSirLimbo for reporting.

UI Enhancements

  • In the galaxy map, viewing a planet's hover-text info with the 'show full detail' button held will tell you the AIP cost for capturing the planet. This is very handy if minor factions have been taking planets and the AI has been recapturing them....
    • Badger has been lusting after this feature ever since he added the nanocaust.
  • Clicking on the AIP section of the resource bar now brings up a popup with the complete AIP change history
    • The game now tracks additional information about AIP changes, including which faction caused the change and the planet. This information is only recorded for AIP changes that happen after this patch is applied, so older events on existing save games will have less information
  • When in the planet view, a planet under the influence of a minor faction will have the planet name over the wormhole correctly coloured
    • So if you are next to a marauder or nanocaust planet, the wormhole name will be coloured appropriately when you look at that wormhole.

Nanocaust Changes

  • Instead of using FrenzyFleets, the nanocaust will just attack anytime, anywhere it feels like it has an advantage.
    • This makes the Nanocaust scarier. Much Scarier.
  • The Nanocaust now gives the Dark Spire less energy when fighting on DS planets
    • Reported by zeusalmighty
  • The Nanocaust isn't allowed to attack the player until > 30 minutes into the game, lest they player just die early to a unlucky nanocaust spawn location.
    • That number is in the xml
  • Fix a bug in the nanocaust income logging
    • Thanks to Puffin for reporting

Macrophage changes

  • Cap the number of Telia per planet based on intensity (low = 1 per planet, med = 3 per planet, high = 5 per planet)
    • This is only for new Telia; if you have an existing game with lots of Telia on a planet then you'll have to live with it
      • Requested by a number of people, most recently firespier on steam.
  • Tweak the base macrophage income (ie without counting harvesters)
    • Higher intensities get a bit more income, lower intensities get a bit less

Balance Tweaks

  • Siege Frigate range 12,000 -> 10,100.
  • Tractor Guardian Hull/Shields 57,500/5,000 -> 10,000/52,500.
    • So Fusion Bombers work on them, since they were given a higher albedo for the purpose of fighting Tractor units long ago...and Puffin kept forgetting to do this.
  • Orbital Mass Driver durability increased 150%.
    • Makes player captured ones last longer, since unlike Ion Cannons these do not have Marks with which to gain health.
  • Ion Cannon and Orbital Mass Driver hacks now take only 15 seconds, and now only cause a tiny completion response.
    • Since it's a bit odd for the thing you are hacking to be easily capable of crippling the Flagship you need to do said hack. Ion Cannon is included for consistency.
    • Response is greatly reduced, since it feels pretty bad for the shiny toy you just stole to spawn a bunch of ships, which could destroy said toy quickly unless you sat a bunch of units right next to it every time.
  • Increased ai_cost_to_purchase of Paralyzers by 50%.
  • Increased ai_cost_to_purchase of Strikecraft.
  • Default Strikecraft hull/shield multiplier reduced to 2x, default attack multiplier reduced to 1.5x.
    • The experiment with this has given some good data. The feeling of chaft is very much gone, but it was possibly overdone, causing stories of enormous power AI Waves that Turrets simply cannot defend against.
    • So we're going to try an intermediate setting, and see how feedback on that is. If defending is still problematic, then possibly we'll look at changing Turrets themselves.
    • Of course, anyone can change these to whatever they like, and feedback on any of it is very much appreciated.
    • Lastly, it appears with the way this setting is set up, that if you were using the default, it'll adjust existing saves to the new one.
  • Auto Bombs now have a 2x Stack Damage Bonus.
  • Ships that are getting into transports now move 3x faster than usual. This affects balance, but also makes it so that loading transports is a lot more convenient for you.
    • Thanks to Yog-Sothoth for suggesting.

Defenses

  • Plasma Turret and Beam Cannon mass 0.3 -> 2.
    • Now resistant to Paralysers. Also a bit more fitting since they're notably larger than normal Turrets.
  • Pike Turret damage 320 -> 416, reload time 4s -> 3s.
  • Nucleophilic Turret damage 240 -> 900, reload time 3s -> 6s.
  • MLRS Turret shields 6,750 -> 9,000.
  • Concussion Turret shields 6,750 -> 7500, reload time 9s -> 6s.
  • Grenade Launcher Turret hull/shields 5,400/13,500 -> 9,450/23,600, damage 184 -> 330.
  • Tritium Sniper Turret hull/shields 3,600/4,500 -> 2,700/6,750, damage 92 -> 138.
  • Spider Turret hull/shields 3,600/4,500 -> 2,700/6,750.
  • Beam Cannon reload time 6s -> 4s.
  • Plasma Turret damage 3,500 -> 5,500.
  • Tractor Array health increased 50%.
  • Gravity Generator hull 21,000 -> 30,000.
  • Command Station Pike Turret count 15 -> 24.

Version 0.876 Counterattacks Ate My Waves

(Released July 16th, 2019)

  • Allow friendly minor factions that take planets to scout for you.
    • Thanks to Exlium for the bug report
  • Player units will no longer automatically target Ion Cannons and Mass Drivers.
    • Thanks to NRSirLimbo for reporting.

Counterattack Refinements

  • counterattack_min_strength is now properly respected, so you won't get a counterattack if you lose a single fleetship somewhere.
    • Thanks to Puffin and Exlium for reporting.
  • Counterattacks now build strength based on the base strength of the destroyed ships, before multipliers. This drastically reduces the AI's unintended advantage when you raise the multipliers.
    • It also is based on the mark 1 strength of your ships, because otherwise it was penalizing you for using better ships in essence. We'll see how that part feels over time.
    • Thanks to everyone who reported!

Neutering Returns

  • Regular and reconquest AI command stations now no longer enable counterattacks. This was preventing "neutering" planets, which is a really important part of the game that we overlooked when thinking about this.
    • Instead, just guard posts themselves, and the AI king command stations are what cause counterattacks. This makes it so that essentially you still have the same counterattack mechanics, but the ability to neuter planets like before. The command stations are super weak in general anyway, and are simply what causes you to get AIP; so it doesn't make sense for them to be something you're required to kill, since they are so trivial compared to the guard posts anyhow. The AI king command station is of course the exception, so hence it remaining on the list.
    • This is why we love having players constantly commenting and evaluating what we're doing; neutering is an absolutely essential part of the game and always has been, and it was an accident that we made that impossible. And thankfully a really simple fix once it was brought up!
    • Thanks to CowForceSeven, Izaon, and themouthofsauron for reporting and suggesting this fix.

Bugfixes

  • Put some defensive coding in GetCountOfPlayerFleetsAtPlanetWithCenterpiece() due to a null reference
    • Thanks to trillioneyes for reporting
  • Fixed GCA hack always being hidden.
    • Thanks to Badger for reporting.
  • Added a new "is_combatant_despite_no_weapons" xml tag, which, when set to true, causes the ship to be selectable with other military units even if it has no weapons on it.
    • This in turn lets us remove the weapons from transport flagships, which should cause them to start working properly when in pursuit mode.
    • This is untested for the moment, so let us know if it doesn't work!
    • We also have applied this to combat factories for the time being, since selecting them and having them come seems useful; but it could be taken back off those if that doesn't feel desirable.
    • Thanks to AnnoyingOrange and RocketAssistedPuffin for the reports.
  • Fixed things up so that if you remove a weapon from an existing ship type, and it was the only system on that ship, then the older savegames will still load just fine.
    • Thanks to Puffin for reporting.
  • Really major refactor of how waves are generated, since it needs to know what is in the wave before it can decide what to do with it... and it also needs to know where the wave would be coming from now before it knows how strong it is and what is in it... so basically a lot of things had to be reorganized in order to make it so that it can tell which end is up.
    • The overall logic should be the same, but it's just more accurate now in terms of actually using real numbers for strength calculations rather than trying to use estimates or approximations. The waves can vary a lot more than we can accurately estimate now, so that was definitely needed.
    • The two major downsides of this revision are firstly that this does a lot more calculations on a background core of your CPU, but frankly it still should be pretty trivial; and secondly that there's a good chance we introduced some major new bugs with waves in all this.
    • We have tested this and basic waves function as well as apparently reconquest waves, but we haven't checked hacking waves, waves in response to alarm posts, etc. Knock on wood that those should work. This is at least a step up over last version, where it was sending no waves at all because the approximation code got moved around without a full refactor (oops).
    • Thanks to Badger and HeartHunter7 for reporting.
  • Fixed a bug in the strength counting code where it could try to look out more hops than exist on certain planets.
    • This may be indicative of orphaned planets of some sort on certain map types (it's happening on Swirl maps), and so that may just lead to yet more errors, but at least this one is fixed. And we can presumably find the mapgen error, if there is one.
    • Or it's possible that it simply is a very small map somehow, with very few hops on that size of map, and thus it's not a matter of being orphaned, but simply not having that depth of neighbors (a valid case, then).
    • Thanks to UFO for reporting with a line number.
  • AI guard posts or guardians with drones will no longer put "DumpFleetContentsIntoFactionLoose" debugging messages into the debug log when they are destroyed. This is a perfectly valid thing to happen and doesn't need to be reported.
    • Thanks to WeaponMaster for reporting.

Version 0.875 Counterattacks You Can Taste

(Released July 12th, 2019)

Waves Thematization

  • Individual planets now store specific AI ship groups for the waves that will come out of them, same as the planet factions do for reinforcements and whatnot.
    • This isn't actually applied to waves yet, but it is applied to counterattacks and make them thematically sensible things that you can deal with rather than just a mishmash of everything.
  • When you load existing savegames (or quick starts), it now is able to do some AI "defense placer" logic to assign any data that might be missing.
    • At the moment this is useful for assigning the wave types to each AI planet in old savegames.
  • When waves are created, they now have a specific planet that they use from which to launch their wave.
    • That can be overridden or changed depending on context, but regardless a planet is chosen eventually.
    • Since each planet has ships that are valid for waves defined in it now (same as they have ships valid for reinforcements), this now determines what sort of ships are able to be in that wave.
  • The "Wave Composition" lobby option has been removed (it was Homogeneous/Varied as an option), since now waves are based on planets and are instead tight groups of ship types rather than what they were before.
  • For wormhole invasions, it picks a planet completely at random in order to use it for the waves that will be sent. This keeps you on your toes with those, for sure.
    • Additionally, for anti-minor-faction waves it does the same, for the same reason.
  • The purpose of all these changes with waves is to make it so that they are more varied in different parts of the galaxy, BUT so that they are more predictable at specific planets, and thus something you can plan for.
    • In general it also keeps them more consistent and not just "a big blob of a whole bunch of different things."
    • This needs a lot of testing to see how it feels, as we may need further tuning, but it should hopefully give players a greater sense of agency and ability to plan, without it making the entire galaxy feel stale and repetitive.
    • For a while we had an idea about Wave Mainframes and some other things to accomplish similar stuff, but that would have added more complexity for players and would have been less-contextual in terms of the parts of the galaxy feeling different. This approach as-implemented should get at the same goal, unless there are bugs or oversights, but it should do so in a manner that doesn't require extra thought on the player side (chasing around yet one more thing on the galaxy map), and without the problem of so darn much stagnation around the whole map in terms of what waves are like.
    • It's entirely possible that we may need to do yet more in order to make waves something that are the correct balance of predictable (so you can plan) and varied-across-the-map (so that different parts of the map feel different and the entire game isn't repetitive), but this should be a good start at the very least (bugs notwithstanding).
    • Thanks to RocketAssistedPuffin and MaxAstro for outlining the problems that the old style of wave composition were causing in the way that players are able to anticipate them and plan for them.

Counterattacks From the AI Replace Reprisal Waves

No More Salvage

  • The general concept of salvage has been removed.
    • For AIs, we're introducing a new style of counterattacks instead of reprisal waves.
    • For players, we've already got plenty of ways for them to gather metal, and salvage was quite confusing as well as just cluttering the ui.
    • In some ways for players, the EXP stuff takes the mental place of salvage while being different from just generating metal, anyway.
  • The Scrapper Combat Factory has been renamed to just being another Combat Factory, since it no longer gathers salvage (given that's not a thing anymore).

Reprisal Waves Removed

  • The prior style of Reprisal Waves has also been completely removed.
    • A new Counterattacks mechanic is instead added, and doesn't use the wave framework -- it works pretty differently in general.
    • AIs still gain "counterattack budget" in the same way that salvage was previously gained. However, there are some new multipliers that give more or less of this based on the AI difficulty level.
    • As the AIs on a planet destroy player ships, it now turns those into counterattack forces that it will actually send against you.
    • Each AI difficulty has a minimum strength amount that is required for them to build up before they even start showing the counterattack stuff.
    • There is also a minimum AIP that you have to hit before the counterattacks start becoming a thing, too.

Counterattacks Added

  • The new counterattack mechanic works a lot like the old reprisals one, but it is per-planet rather than global for an AI, among some other differences.
    • Basically as you lose ships against a planet, it will build up an increasingly-strong force that it will want to send against you in a counterattack. If it doesn't reach the minimum threshold of scariness for the difficulty of that AI, then it won't even tell you about it.
    • If it reaches the minimum threshold for scariness, and it outnumbers you at least 5:1 with what it would send versus what you have on that planet, then it will start a 2 minute countdown and then do a marauder-style spawn on that planet off to the side somewhere and start wrecking you badly.
    • Note that the cost for the ships that the AI has to spend is independent of the mark level of the planet, so the strength will rise much faster if you attack a planet that is far outclassing yourself. If you attack a mark 4 planet in the very early game and don't quickly destroy the command station and guard posts, you could be seeing a game-ending counterattack.
      • Then again, now that you can see the strength of the counterattack rising as you fight, and see that it's stalled out by your presence early on in, this gives you a chance to disengage and fight off the counterattack versus just being absolutely swarmed with a reprisal wave that is game-endingly strong like used to happen. It still can happen, but now it's your fault rather than something out of the blue. ;)
    • The cool thing is that if you can kill the command station and all the guard posts while the counterattack is either stalled or hasn't reached zero on the countdown timer, then the counterattack completely evaporates forever and the AI just loses those theoretical ships it would have had. So you have a brief and interesting window of opportunity.
    • Most of this stuff is explained in the in-game tooltips for the warning on a counterattack that is forming.
    • This is very different from reprisal waves in its role in the game until now; the old reprisal waves were inevitable and AI-empire-wide, and we may do something along those lines again in the future in a revised way. But the new counterattacks are more local and are a... basically a new risk or disincentive to attack targets you're not strong enough to take, at least when it comes to trying to wear them down via attrition. You can still do it, absolutely, but you just need to go for the throat a bit faster.
    • And finally, bear in mind that this is brand new and may not be balanced ideally yet. It may need to be toned down in some fashion, or made more dangerous in certain circumstances, but in the limited testing we've done thus far it does make sense what it has generated.
  • There is a new counts_as_part_of_player_strength_at_planet_for_counterattack_blocking that determines if factions are able to contribute to how much strength the player supposedly has at a given planet for purposes of blocking the AI.
    • Basically this lets the human resistance fighters, and also enemy-to-ai zombified ships, and also mercenaries, help block counterattack waves.
  • Added a new "Write Counterattack Info In Planet Tooltips" option in the debug section of the settings menu.
    • This gives you info on what is going on behind the scenes with the counterattack calculations, which is useful for debugging purposes especially in these early days when we're balancing things with this new feature.

New Hacks

  • Adds two hacks for capturing Orbital Mass Drivers and Ion Cannons, respectively.
    • Captures all Ion Cannons on this planet for your own faction, permanently -- until and unless enemies destroy them, of course.
    • Captures all Orbital Mass Drivers on this planet for your own faction, permanently -- until and unless enemies destroy them, of course.
    • These currently only cost 10 hacking points which is on the low side, but it seems like we needed some cheap hacking stuff that is of... questionable use depending on the situation. Sometimes it will be really useful, but other times this is kind of a "candy hack," so making it cheap and attractive is interesting.
    • It's also interesting because in the first game you could get these units just by taking over the planet, but in this game you don't -- but now you can still capture them, but have them on your side for DURING planet capture, if you want. There are several interesting pros and cons, strategically, to the new approach.
    • Big thanks to Quinn for thinking of these as well as adding them.
  • Hacking OMDs or Ion Cannons now only works for planets of mark 6 or lower, and also costs a base of 5 Hacking Points that increases by 5 for every mark level of the planet. So this is a little more balanced hacking-points-wise, while still being very cheap in the main. Exploits using this against the AI homeworlds are also no longer possible with these changes.
  • These hacks use Hacking_TakeOverWeapon as a base. This means that if you want to be able to take over a new weapon or entity in the same fashion as you can with these, just copy it over and change unit_tag_target to the tag of the unit you are after. Currently, unit_tag_target only supports a single tag, however.
  • Adds a hack to explore all planets that have a coprocessor. Currently costs 5 points per unexplored coprocessor.
    • This hack is another fancy generic one, like Hacking_TakeOverWeapon. Simply copy the XML over, change the values of the tags, and it will work the same way. It also features support for different pricing based on planet mark levels

Interface Improvements

  • Add a setting to always show planets in the galaxy map
    • Requested by Baleur, James and ZeroTheHero on Steam. Possibly others as well.

Fleet Management and Tooltips

  • The fleet management screen now allows you to change the keybind that fleets are bound to, and also allows you to bind more than one fleet to a single keybind. This has been planned since the very start of even having fleets, but it's really nice to finally have this added!
  • The fleet sidebar tooltip now shows if the centerpiece of the fleet is crippled or missing.
    • It also says if the construction status is paused because of it being crippled or because of it being manually turned off.
  • The fleet sidebar tooltip also now says how many factories are in range of the fleet, since that's a big deal on whether or not construction happens with them.
  • The fleet management sidebar popup now shows all of the same info about a fleet that hovering over the fleet would show (in terms of the members of the fleet and their statuses), but now also includes tooltips for each line item.
    • So you can quickly get a bunch of status information for any of your fleets' specific ship types just by opening this window from any planet.
    • For the battlestation fleets and the command station fleets, that's pretty much the end of the functionality for the fleets management screen, at least until something else gets pointed out. Mobile offensive fleets are another matter.
  • For mobile fleets, in the fleet management screen there are now buttons by all of the non-centerpiece unit types that allow you to pause construction or let it resume as normal.
    • In the tooltips for fleets, you can also now directly see if a line item is paused.
    • There's also another button, "Swap," which has a "coming soon" message, but will let you do some other cool stuff soon.
    • But already, at this point this lets you customize what is actually being constructed in your fleets, which is a pretty big deal.
      • The goal of the past builds has been to make it so that 90% of the time, if not even more, you always just want to have everything building at all times. We probably are in that ballpark now. But the ability to turn off certain things from building is definitely a must-have, no matter what. Thanks for your patience while we didn't have that -- the general utility of things like low-mark ships is probably higher now because of us skipping that for a while.
    • Thanks to BadgerBadger, Alreadyded, Nameless Terror, and tons of others for requesting this feature.

Techs and Related

  • The techs tab of the sidebar now shows any techs that would benefit ships that you have NOT captured yet, but which you have discovered and which are capturable by you. This includes ships in fleets you could capture.
    • For each tech, the tooltip shows you if you have any ships that would benefit from it, and how many ships you COULD capture that would benefit from this, too.
  • Uncaptured fleets now calculate out values that are for the local ui only, which basically show what the strength and ship caps and whatnot of those fleets WOULD be if you captured them.
    • Since different players in multiplayer can have very different versions based on what techs they have upgraded, this is purely non-sim visual-only data.
  • You can now directly see what the ACTUAL strength would be of a fleet you would capture, and all its ships in it and what their caps and mark levels would really be, rather than the basic mark-1 defaults that it was showing before.
    • Thanks to Yog-Sothoth for suggesting.

Bugfixes

  • Fixed GCA and IGC hack costs. They should now cost 120 and 90 respectively when owned by the AI (or if command station of the AI was destroyed by something other than the player), and 30 when owned by player (or presumably if the player has destroyed the AI command station but not captured the unit itself).
  • Fix for a nullref exception in Inner_CheckForCollisionOrMakeEntityMove that probably was just happening when checking against a ship that is being disassembled.
    • This shouldn't actually have been causing any problems in the gameplay, other than the annoying popup, but the popup is probably now fixed. In general if entities were being torn down on one thread (after dying), then there was a rare chance of them having this issue in the decollision checking, but now it just accepts the incongruity and moves on.
    • Thanks to AnnoyingOrange and arsdor for reporting.
  • Added a new only_show_once_per_planet_with_multiple_entities_granting_this xml tag that sets a bool OnlyShowOncePerPlanetWithMultipleEntitiesGrantingThis on hacks.
    • On GameEntityTypeData, it precalculates HasAHackThatOnlyShowsOncePerPlanetWithMultipleEntitiesGrantingThis automatically based on if the entity has any hacks with this new flag on it. This will let us pre-sort these really easily.
    • Added a new HasAHackThatOnlyShowsOncePerPlanetWithMultipleEntitiesGrantingThis EntityRollupType, which in turn checks the value on GameEntityType. Now our hacks code for the UI can check the small number of units on a planet for which this is relevant really easily.
    • That said, actually a solution far simpler was just adding hackingTypesAddedThatAreSingleOnly on the hacking sidebar and making sure that hacks of the same type only get added once. Easy peasy. But the other lookups were left just in case we need to iterate those entities efficiently for whatever reason.
    • Thanks to Quinn for inspiring this addition. It works with the mass drivers and ion cannon hacks now, so that if there are more than one on a planet there's only one thing on the planet still (and it captures all of the ones on a planet).
  • Fixed several potential cross-threading bugs that could lead to (relatively harmless) nullref exceptions in fleet code as ships died on another thread.
    • Thanks to trillioneyes for reporting.
  • Transport Flagship weapon disabled, weapon range increased to sniper levels.
    • It's still there, so it still counts as a Combatant for the purposes of selecting all Military units, but will no longer try to charge into combat or anything like that if set to Pursuit mode.
    • Thanks to Annoying Orange for reporting.
  • Fixed a bug where the start fleet transport flagships had multipliers of 1.3 for their frigate and strikecraft counts. This was giving you more than advertised or intended when you actually got into the game.
    • Thanks to WeaponMaster for reporting.
  • Fixed an oversight where unclaimed flagships would make the fleet count increment while you were on their planet trying to capture them.
    • Thanks to trillioneyes for reporting.
  • Put in error catching for an exception that could happen in StrengthCounting under certain circumstances. This doesn't fix the error, but it will tell us where the error actually is and should also prevent the "endless further errors" problem that was otherwise happening after that.
    • If anyone can duplicate this error in the new version once that is out, and then send us the new error message that it generates, we can fix the actual problem. It seems to be happening on swirl maps for whatever reason.
    • Thanks to UFO for reporting.
  • Fixed a bug where if you had captured a GCA that was granting a ship type cap of some amount, and you had hacked a different GCA to get ship cap added for that same type, it would start infinitely counting up your ship count added.
    • We were using RefPair as if it was a value type (AddRange), when it fact it was a reference type (it's right in the name of the class, sigh, and we made it ourselves). Perils of coding while tired?
    • Thanks to zeusalmighty for reporting, and WeaponMaster for figuring this out.
  • Fixed-position forcefield generators should no longer be pushed around by flagships. This hasn't been fully tested, so if you see it more, or other variants, please let us know!
    • Thanks to AnnoyingOrange and WeaponMaster for reporting and investigating it.
  • Logic in waves has been changed so that if there are any guardians in the normally-strikecraft section of the code, then it will just ignore them in terms of the "max guardians with a wave" logic goes.
    • This lets the Royal Guardians spawn en masse as expected for the Royal AI type, instead of randomly sending 0 strength waves followed by apocalyptic ones later on.
    • This is untested, but should in theory work.
    • Thanks to WeaponMaster for reporting and diagnosing.
  • Upgraded the hacking code framework a bit, so that it's now possible for it to not just say "I can or can't be hacked," but also "show me or don't show me in the list if I can't be hacked."
    • A lot of things that no longer make any sense contextually, like trying to hack something that you control now, should just be hidden and now are.
    • Other things like "did I already hack that dark spire thing?" should show a reminder of "yes, you already did, so you can't again," since that's relevant info.
    • And of course this doesn't get into things like "you can't afford to hack it right now" or whatever other problems like a missing hacker of the moment. Those things always show, but just redded-out, still.
    • Note that this isn't tested yet, so if there are problems please let us know.
  • Combat Sentry Frigates, which get sent out with support fleets, should no longer die to remains. That's very much at odds with how they are actually used, and was actually really confusing.
    • Thanks to WeaponMaster for reporting.

Balance Tweaks

  • Plasma Turret damage 1,500 -> 3,500, reload time 9s -> 2s, no longer has area of effect. Also reduced count given by Command Augmenters.
    • Really unsure about these things. In player hands they don't really have a job.
    • Regardless, they now do almost as much DPS as their optimal performance beforehand, but at all times and even against single targets, so hopefully they're better?

Version 0.874 Basic Fleet Management

(Released July 9th, 2019)

New Hacks

  • Adds the hack for Global Command Augmenters (GCAs -- those newthings that give you more turrets or other defenses at all your command stations if you capture and hold them). It costs 120 hacking points if someone else took the planet, but you didn't get any AIP for it (Or if the AI still owns it), but only 30 otherwise. Both values are XML configurable.
    • Values probably need some balancing done, but I'm not good with that, so Help Wanted there.
    • Added an XML value for when you want a secondary hacking cost. If not defined, defaults to 0. This has only been defined for the GCA and IGC hacks, and has no effect elsewhere at this time.
  • Adds the hack for Intra-Galactic Coordinators (IGCs -- those things that add a multiplier to your ship caps for strikecraft or turrets if you capture and hold them). It costs 90 hacking points if someone else took the planet, but you didn't get any AIP for it (Or if the AI still owns it), but only 30 otherwise. Both values are XML configurable.
    • Values probably need some balancing done.
    • Thanks to Quinn for adding these!

New Permadeath Options

  • The old "reverts_to_neutral_on_death" bool xml setting for ships has been replaced with a new reverts_to_neutral_on_death_if_permadeath_setting_is_true option that allows for the same functionality but tied to whether or not a galaxy setting is enabled or not.
    • Basically we can now control whether permadeath is on or not for certain units based on galaxy settings, and all of this is fully moddable, too.
    • Added new settings for specific categories, shown below.
    • Decided not to make the AIP gains altered by these settings, to keep things more consistent for people even when permadeath is on for some unit category.
    • Please note this is mostly untested, but seems to be okay from a quick look at things. If anyone wants to do a stress test on these that is appreciated.
    • Big thanks to Ecthelon for pointing out how stressful the permadeath can be for some people.
  • Metal Harvesters - Permadeath (default off)
    • Metal Harvesters are one of your most major sources of metal, and normally can be rebuilt if you lose them. Turning on permadeath for them (not the default!) makes the game vastly harder.
  • Zenith Generators - Permadeath (default on)
    • Zenith Power Generators and Matter Converters are rare-but-huge sources of power or metal, respectively. Normally they disappear forever once killed, but if you'd prefer them to die to remains to make for less pressure on protecting them, you can enable the no-permadeath option here.
  • Intra Galactic Coordinators - Permadeath (default on)
    • Intra Galactic Coordinators (IGCs) are rare structures that increase the ship caps of large number of your unit types while you have them captured and held. Normally they disappear forever once killed, but if you'd prefer them to die to remains to make for less pressure on protecting them, you can enable the no-permadeath option here.
    • Bear in mind that these can also be hacked in order to give you the bonus without you having to hold them, so normally that's supposed to be the workaround if you just feel you can't (or don't want to) protect them on the planet you find them on for whatever reason.
  • Global Command Augmenters - Permadeath (default on)
    • Global Command Augmenters (GCAs) are fairly common structures that give you more turrets and other defenses at all your command stations while you have them captured and held. Normally they disappear forever once killed, but if you'd prefer them to die to remains to make for less pressure on protecting them, you can enable the no-permadeath option here.
    • Bear in mind that these can also be hacked in order to give you the bonus without you having to hold them, so normally that's supposed to be the workaround if you just feel you can't (or don't want to) protect them on the planet you find them on for whatever reason.

Updated Tips and Strategies

  • Game tip improvements and corrections based on recent changes to the game:
    • Improved the tip for "Military Command Stations Matter!" in order to mention the bonuses they get even with GCAs.
  • New tip in the Defensive Strategies Section: Capture or Hack Global Command Augmenters (GCAs)
    • Feeling like your command stations don't have many defensive options? It's time to go get the rewards from some Global Command Augmenters (GCAs) in some fashion.
    • The simplest approach is just to go over to that planet and hack it to get the benefit at no AI Progress (AIP cost), and with no risk of ever losing the benfit. This gives you a bunch of new turret types and/or minefields and other defensive options at ALL your command stations. But it costs a heck of a lot of hacking points, so you're going to be limited in what other options you can do with hacking.
    • The hacking-point-free approach is to go over and capture and hold the planet. If you do that, then you get all the same benefits from the GCA, but you've increased AIP instead of spending hacking points. So... that's definitely a tradeoff. But you also got whatever else was on the planet, including new metal harvester points, so that's good.... right?
    • However, depending on your permadeath settings in the lobby options, by default if you are holding a GCA and it gets destroyed, then you lose its benefits forever. This can be a major blow! Once you've captured the planet, or at least paid the AIP for kicking the AI off, you're able to hack it for a fraction of the normal hacking point cost.
    • All of those options have pros and cons, but one thing is certain: GCAs in general are absolutely key for your ability to defend yourself.
  • New tip in the Returning Players section: Global Command Augmenters (GCAs) Are Critical For Defending
    • In the first game, you had per-planet caps of turrets and other defenses. You got more by unlocking new ship lines.
    • In this sequel, you really get very little for defending yourself at the start of the game. You can use battlestations, but there are very few of them in the galaxy.
    • Instead, what you want to do is either capture or hack (both have pros and cons -- see the defensive strategies section) Global Command Augmenters (GCAs), and it will give you some additional turrets, minefields, or other defenses at ALL your command stations.
    • This is basically the same sort of per-planet cap system as before, but it's driven by capturing or hacking GCAs rather than spending science. More than on GCA might give you to a specific turret type, which in turn would just additively give you a larger cap for that type.
    • Even beyond this, however, the type of command station you use gives you a bonus to the turret types you get from this. Logistical get the default amount. Military get 2x the default amount. Economic get half the normal amount.
  • The older "Battlestations and Citadels" tip has been rewritten completely:
    • Battlestations and Citadels can be important, but are rare. You can capture these to get a mobile force of turrets, forcefields, minefields, and whatever else to use on your planets or enemy planets.
    • These can be great for beachheads on enemy planets or to help defend chokepoints on your planets.
  • Added a new quick tip: Global Command Augmenters (GCAs)
    • Global Command Augmenters (GCAs) are super important, as they grant more turrets and other defensive options to ALL your command stations. You absolutely need to capture some of these if you want to defend more than a few planets.

Balance Tweaks

  • Some nerfs to reprisal waves; make them more expensive for the AI and less powerful when they arrive.
    • These aren't huge nerfs, but hopefully they'll tone things down a bit. Prompted by learning that Zeus was debug-murdering giant reprisal waves (s)he found "unfair"
  • Golems, Arks and Spire Frigates now cost 20 AIP to claim.
  • Golems and Arks now have larger Fleets in general.
  • Increased starting Metal from 540k to 2 million.
    • Building the units for the starting Fleet would starve you in every case, then trying to build any defenses, or a Command Station would just prolong this. It was a pretty unnecessary delay.
    • Thanks to ptarth for suggesting.
  • The Home Forcefield Generators were previously completely un-upgradeable, as they were markless. They now are upgradeable by fleet EXP, but only up to mark 3 maximum.
    • They are already wicked powerful to begin with.
    • Thanks to trillioneyes for suggesting.

New Starting Fleet Option

  • New Starting Fleet: Consumer Fleet
    • Mostly focused on eating enemy ships and structures, but also has a healthy complement of bombers for smashing things, and a large sniper starship for adding fire support from afar.
    • 40x vicious metabolizing gangsaws, 40x absorbers, 30x fusion bombers, and 1x tritium sniper frigate.
    • Thanks to zeusalmighty and Puffin for suggesting.

UI Improvements And Additions

  • Added a new piece to our UI toolbox, which is a modal textbox popup where we can have players able to type whatever and then have it commit the changes if they hit save.
    • This might seem like an extra step compared to just directly using a textbox, but it solves a couple of problems:
      • Firstly, when a textbox is active we need to generally make the other hotkeys not work, and this makes it really obvious when that's the case.
      • Secondly, when a textbox is being edited and we don't have an explicit "save now" button, we want to sync these changes over the network only when the player is done editing that textbox. That's easier to handle via this mechanism in some cases, such as for fleet names for instance.
  • Added another new piece to our UI toolbox, in the form of a new Window_ModalSelfUpdatingTextWindow.
    • This works like the tall modal popup for the most part, except that it's able to self-update its own text on a periodic interval.
    • We're able to thus use this for things like the metal flows popup, and have that look the same but be updated in realtime rather than being static until you close and reopen it.
  • The metal flows window that you can get by clicking the metal resource label at the top of your main window now updates itself ever half second, so that you can see things in realtime.
    • There is also some colorization in them to now help you more easily read what is happening as it updates.
  • Also adjusted the metal flows window to show more human-readable text for the "purpose" of what each ship is spending metal on.
  • A bunch of the sidebar text will now scale down if it gets too long to where it would wrap.
    • This applies to things like fleet names, ship names, etc. There are still cases where we'll want to use the sidebar display name to have a larger brief text display for a ship, but for fleets we don't really have that option most of the time.
    • Anyway, this prevents things from wrapping inappropriately, and lets custom names up to 30 characters in length for fleets still be quite legible.

Very Basics Of The Fleet Management Screen

  • Left-clicking the fleets in the sidebar now opens a new next-to-sidebar popout for the fleet management screen.
  • For the mobile and battlestation fleet types, you can now edit their name using the new "textbox popup" window from the fleet management screen.
    • Note that for planet type fleets, it doesn't let you rename them because it's the name of the planet that is shown instead. It shows that you can't do that in there, too.
  • The fleet tooltips on the sidebar now show you what the maximum total fleet strength is, and what the current total strength out of that maximum is.
  • The fleet tooltips on the sidebar now show you what the current EXP boost or penalty is, based on how many fleets are at their planet.
    • Note that this is only SORT OF accurate, because it's based on the centerpiece, and if there are ships from that same fleet on other planets from the centerpiece then they might see different numbers.
    • Normally if you look at the target you would be destroying, it shows what the EXP boost or penalty is based on the fleets at THAT planet, which is most accurate.
    • But assuming that you keep your centerpiece on the same planet as your fleet most of the time, the new display at least gives you a pretty good idea.
  • The fleet management screen now includes lines for the same things that are in the fleet tooltips, but with tooltips for individual line items to explain their mechanics more.
    • There are some notes on mechanics relating to fleets that are explained in here that aren't really elsewhere in the game, and which should help make some things way more obvious just by seeing the screen, even.
  • The fleet management screen now has a toggle that allows you to turn on or off all construction for that fleet from any factories.
    • Previously you could only do this by keeping them away from factories, or turning off all the factories. So glad to finally have this!

Bugfixes

  • Fixed Global Command Augmentors being able to add 20 Sentry Frigates...sheesh.
    • Thanks to minetime43 on Steam for reporting.
  • Fixed up the multipliers for ship types in a fleet based on their centerpieces so that those happen AFTER any added ship type cap additions from outside sources (GCAs, etc).
  • Fixed up the multipliers from Ingra-Galactic Controllers (that give extra ship caps for turrets or whatever) so that those happen after the GCAs as well.
  • Fixed a bug where GCAs were granting 1 too few turrets or whatever else if the turret wasn't a native type for the command station in play.
    • Thanks to WeaponMaster for reporting as well as finding the issue.
  • Fixed a bug that was letting small ships sit inside large ones. Mainly affecting things like Golems and Arks having other ships sitting inside them.
    • We noticed this quite a while ago, but thanks to WeaponMaster for finding the fix. The current fix is untested but should probably work.
  • Fixed a display bug where if a ship was not upgradeable because it was markless, but it was set to be upgradeable via fleet EXP, then it was saying both that it could not be upgraded and that it could be upgraded by fleet EXP. Now it just says that it can't be upgraded.
    • Thanks to trillioneyes for reporting.
  • In all aspect ratios, the tall modal popup window now fits fully on the screen rather than hanging off the bottom slightly.
    • Ditto for the in-game escape menu.
    • Thanks to Dominus Arbitrationis and others for reporting.
  • The game now passes in some extra debugging info to some of the deserialization methods so that when we get the "rowNamesByOldIndex null" error or similar we can tell why.
    • Thanks to trillioneyes for inspiring this change.
  • There was a nullref exception that was harmless in the prior build of the game, but definitely annoying. It happened when loading a savegame, but then the second time trying to load the savegame would not throw the error. The error didn't actually hurt anything.
    • This is now fixed for future versions of the game, where it would have started hurting stuff. It won't fix the errors from that one version of the game, but will keep them from happening from versions saved in new builds.
    • Thanks to trillioneyes for reporting.
  • The DoForFleets() logic now includes a FleetStatus parameter that can restrict it from including un-owned planets. Have not tested this, but it should solve issues like the count of turrets benefiting from a technology being wildly too high.
    • Thanks to ptarth, WeaponMaster, and Badger for figuring this one out.
  • Put in a fix to the focused gravity generator to fit into a single line on the sidebar.
    • Note that the xml winds up looking like this:
      • Already there: display_name="Focused Gravity Generator"
      • Add this: display_name_for_sidebar="Gravity Generator"
    • This sort of thing lets us have longer names for ships, but some form of abbreviation specifically in the sidebar where we don't want things to wrap.
    • Thanks to Dominus Arbitrationis for reporting.
  • Fixed a mostly-invisible bug where a warning was thrown about the escape menu having two references to the same control on starting up the game each time. You'd have had to look in the log to even see it.
  • Also fixed a bug in the metal flows window that was causing some duplicate info to be shown in some cases.
    • And another bug that was causing some empty metal flows to show up periodically.

Version 0.873 Battlestation Overhaul

(Released July 5th, 2019)

New Critical Target: Major Data Centers

  • New Capturable: Major Data Centers
    • Currently, it is a neutral object on planets that can be claimed for -80 AIP (AIP goes down by 80 when you claim it), but raises AIP by 80 when it dies. This change does affect the AIP floor, however. It is automatically targeted by the AI as "IrreplaceableResourceGeneration", but not bothered by human units. Once it dies, it is gone forever, it does NOT revert to unclaimed or anything like that.
    • Thanks to both RocketAssistedPuffin for pointing out the lack of things that can die permanently, and AnnoyingOrange for pointing out the lack of things that reduce AIP, thus making the AIP floor not all that useful. And thanks to Dominus Arbitrationis for implementing it!

AIP-Reducer Improvements In General

  • There is a new Destroyables section of the lobby options that is used for letting you configure some things that we were previously hardcoding into AI difficulties.
    • Normal Data Centers (0-6, default 6)
      • Data Centers are scattered around the galaxy and are something you can use to lower the AI Progress (AIP) if you raid and destroy them. The number of these used to vary by AI difficulty, but that wasn't entirely fair because you need AIP reduction equally at all difficulty levels. The default is now the new maximum (6), but if you want a harder game you can reduce the number of data centers as far as zero if you really so desire.
        • Note that in prior versions it would give you 8 on difficulty 1, and 6 by difficulty 3, but by difficulty 7 and up it was always 4 or fewer. People definitely were wanting to have more AIP reduction opportunities, which is more inline with the first game.
      • Major Data Centers
        • Major Data Centers are scattered around the galaxy, and come with a lot more of a risk/reward dynamic. If you capture and hold them, the AI Progress (AIP) drops by a massive amount. But the AI will start targeting them, and if they are ever destroyed after you capture them, the AIP goes UP by that huge amount that it was previously reduced.
        • More of these being seeded can give you more chances to seriously reduce the AIP, but can also put you in the position of having to capture them when you don't really want to. The default of 2 is a good balance against this.
        • Technically these are more of a capturable than a destroyable, but they are destroyable by the AI and in the same spirit of most of the other destroyables, so for the sake of organization this seemed good.
  • The tooltips in the intel tab for the coprocessors and data centers are now a lot more informative and actually explain how much they reduce the AIP by.
    • There are now intel tab tooltips for major data centers, explaining how those work without you having to go and find them in the galaxy by hand.

New VIP Capturable: Global Command Augmenter

  • Major new capturable: Global Command Augmenter
    • Capturing this structure lets ALL of your command stations build more defensive structures (as listed below). Different command station types get more or fewer based on their 'Global Command Augmentation Mulitplier.' Aka military command stations get a lot more, economic get fewer, etc.
    • These are only seeded in new savegames, but these are now the primary way to get more turrets and other defenses for yourself.
    • Battlestations are still a thing and are cool, as are citadels,
  • There is a new commandstation_addedtocommandstation_multiplier xml tag that defines a multiplier for how many turrets and other defenses are added to the command stations of each type.
    • Home command stations get 2x, economic get 0.5x, logistical get 1x, and military get 2x.
  • Thanks to AnnoyingOrange for inspiring these changes and additions.

Vast Reductions To Battlestation Counts

  • The game now only seeds one battlestation or citadel per planet, period. The galaxy map settings for seeding more than one per planet have been removed.
    • In general we are moving away from having remotely so many of these things, as they were way too annoying to use.
  • The game now seeds Global Command Augmenters in the galaxy on planets in roughly the same pattern it used to seed regular Battlestations.
  • The game now seeds only roughly about 1/3 as many basic battlestations on the galaxy map as it used to, and doesn't seed one near your starting location at all (though of course you do have the starting battlestation nowadays, anyway).
  • The game now seeds only roughly half as many citadels on the galaxy map as it used to, and doesn't seed one near your starting location at all.

New Ways To Get Science And Hacking Points

  • There is now an intel generator that explains how to get more hacking points, and from where, for planets where you have hacking points left that you can gather.
  • Distribution nodes were all but useless, previously, since they granted you some metal in a lump sum, but at a steep AIP cost (well, 1 AIP, which is still a bad deal).
    • These now grant you 1000 science and 20 hacking points, which is waaaay more attractive.
  • The astro trains that you destroy also now grant you 200 science each, in addition to the 50k metal they granted already.
  • There are now objectives that tell you about structures that you can destroy in order to get science, hacking points, or both.
    • Now you can actually discover, for example, that destroying AI superfortresses is a great way to get an extra 2k of science!
  • Distribution Nodes used to be seeded a rate of 1 for every 6 planets in a galaxy, but now it just seeds 6 in general (now that they are so much more useful!). However, you can increase this to 10 in the Destroyables section of the galaxy map settings, or reduce it all the way to 0 if you prefer.

Balance Tweaks

Tesla

  • Doubled the reload time and targets hit per shot of Tesla Guardians, Dire Tesla Guardians, Dire Tesla Guard Posts and Dark Spire Eidolons.
  • Doubled the reload time, damage, targets hit and health of Tesla Corvettes and Turrets, as well as doubling their cost for the AI, and halving the amount the player gets.
    • Essentially, these are twice as strong, but there are only half as many, and they also fire at half the rate for roughly the same DPS.
    • This means there are far less Tesla visual effects on the battlefield, coupled with the above change.
  • Tesla weapons now have a Stack Damage bonus of 4x.

Grenade Launchers

  • Doubled damage and reload time of all Grenade Launcher units.
    • Similar to the Tesla, this vastly reduces the amount of visual effects on the field, while keeping their damage roughly the same.
    • Grenade Launcher Corvette, Turret and Guardian explosion radius increased 20%.
    • Since there is so fewer effects on the field, the size of each one can be increased a little, while still having a huge net decrease. This helps the issue where these units were rarely hitting as many targets as they should.
  • Molotovs now cause a rather weak engine slow and weapon reload debuff effects.
    • It's not super noticeable, but it's something for them other than being purely a faster and weaker version.

AI Guardians

  • The guardian purchase budget has been vastly reduced in general. It's still using some internal multipliers in the code, which is less than ideal, but we'll deal with that later. For now the code should be resulting in many fewer guardians on all planets, but in particular not the insane numbers on mark 6 and 7 planets that you saw before.
    • Thanks to WeaponMaster, DEMOCRACY_DEMOCRACY, BadgerBadger, and Dominus Arbitrationis for reporting.

AI Turrets

  • There is a new range_multiplier_to_all_weapons xml tag that can be applied to ships to easily modify their weapon/system ranges to be higher or lower when creating a variant type.
    • We're now using this to make AI versions of all the turrets, with lower ranges on all of them.
    • This won't affect existing turrets in existing savegames, but in new and existing savegames, any new turrets that the AI spawns will have half the range of the old ones. Sniper turrets (which are rare) as the exception.
    • For the player Ensnarer turret types, which are really rare (and even more rare now), those ALSO now have half the range, in exchange for all their tractor beams being on there.
    • Overall this is something to make the battlefields feel a bit more segmented, and so that you aren't being shot by all the turrets all at once on enemy planets.
      • This can be combined with that recent hack we added for weakening turrets at a planet to make their range truly pathetic, which is great. But the player-side turrets are not any weaker.
    • Thanks to AnnoyingOrange for pointing out how... well, annoying this was!
    • Please note this is not well tested, so we'd love feedback on it.
  • On average, now only every 6th reinforcement point will be able to have turrets and non-turret defenses on AI planets, although it's not quite that simple.
    • It's going off of primary keys, and those are just sequential numbers assigned to all ships. It's using modulus 6 to make it so that it's every 6th entry at MOST... but it could be that quite a few guard posts are moulus 6 on one planet, and next to none are on another planet, so expect uneven results (in a good and interesting way) rather than it being uniform on every planet.
    • This helps to make the AI planets a little bit less of a pain to deal with in terms of static defenses, and makes it so that you can focus instead on the guard posts and the ships in them, which are more specialized. Puffin recently made some changes to make types of turrets at each location more consistent (and thus something you can plan against), and so paired with that we should be in particularly good shape. Knock on wood.
    • Please note this is not well tested, so we'd love feedback on it.

Irreplaceable Human Stuff

  • Puffin and others have pointed out that there's a real inability to lose things permanently in this game, which can be kind of... anticlimactic? It definitely makes a lot of things less tense.
    • At any rate, now the three types of intra-galactic coordinators, the Zenith Matter Generator, and the Zenith Power Generator all die permanently when they get killed (versus just going back to being neutral).
  • Don't like the idea of permanent losses? You're not alone, and we'd like your feedback. This is explored in a lot of depth here: https://steamcommunity.com/app/573410/discussions/0/1639789306573972841/#c1639789306574022294
    • The TLDR is that we'd like to see if we can balance it so that most people see this as an exciting fun default thing, or if we need to make it opt-in.
    • In the short term we're opting everyone in so that we can balance it out and see how many people really hate it, but the ability to turn it off selectively (or turn it on selectively if it goes that direction) is pretty much inevitable.

Strikecraft Buff In General, Plus Lobby Balance Sliders

  • Balancing this game is kind of a tricky proposition, because everything is relative, and different people have different ideas on what kinds of balance they'd like to see between GROUPS of ship types.
    • We've been focusing on things like balancing strikecraft against one another, for example, and will continue to do so: that's a relatively insular problem.
    • But sometimes people with that there was more of an emphasis on ALL strikecraft being more useful and the backbone of all the fleets, with frigates and guardians still being strong but no longer causing strikecraft to evaporate.
      • This is where we get into "what is the ideal balance between frigates and strikecraft as a whole," and that's something that we're happy to set a sensible default for, but recognize that some players may have preferences that are different from our defaults no matter what we choose.
    • In the first game, we had combat speeds, which were things like Normal, Epic, Rush, etc, and that basically adjusted the ratio of firepower of ships in general compared to the hulls of ships in general. Sometimes people really wanted to have a game that was slower (more hulls and shields relative to the attack power of ships) so that they could manage ships and they didn't evaporate as quickly. Others wanted a more fast-paced experience. Until now we haven't had anything like that in this game.
    • Now we've added a new Balance section to the options tab of the galaxy map settings, and it lets you adjust the following six things independently of one another, all ranging from 0.5x to 5x.
      • Strikecraft Hull and Shield Strength (new default is 3x what it has been until now, to make these more of a focus like in the first game and keep them from evaporating so fast)
      • Strikecraft Attack Power (new default is 2x what it has been until now, to make these more of a focus like in the first game)
      • Turret/Guard Post Hull and Shield Strength (default is 1x what it has been until now)
      • Turret/Guard Post Attack Power (default is 1x what it has been until now)
      • Frigate/Guardian Hull and Shield Strength (default is 1x what it has been until now)
      • Frigate/Guardian Attack Power (default is 1x what it has been until now)
    • We'd definitely be interested in feedback on what a sensible default for these things should be, and if we should add any more categories beyond these. Note that in order to keep things balanced between the humans and the AIs, we've kept the multipliers for frigates and guardians tied together, and turrets and guard posts tied together.
    • This WILL immediately affect existing savegames, giving them the new defaults. Though at the moment there is no way to change these values once you have started a game, because that would lead to all sorts of exploits where you can manipulate the situation in funky ways as you are playing.
    • Hopefully these controls help to let everyone get the sort of experience they're looking for, while letting us continue to balance each category's items against the other items in that same category (strikecraft, frigates/guardians, etc).

Golems And Arks Are Now Rare

  • The game now seeds far fewer officer fleets, and only seeds them super far away from you.
  • The game now seeds a bit more in the way of regular fleets to compensate.
  • The lone wolf fleets all seed super far away from you now.
  • None of the starting fleets contain Arks or Golems anymore -- so the emphasis returns to the actual small ships that they contain.
    • Getting golems or Arks is now exclusively a mid-to-late-game activity, as they are far along on the map and not something you can start with.
  • Arks and Golems and Spire will now be able to be made much stronger, since they are more rare, and the starting state of the game won't be all unbalanced based on that.

Bugfixes and Interface Improvements

  • New XML flag: "does_not_die_with_command_stations_if_not_yet_claimed". This flag functions exactly like "automatically_dies_with_command_station" except the ship will NOT die if it is unclaimed (Neutral faction).
  • Put in a potential fix for your fleet centerpieces getting bumped around as units spawn out of them. If there are any other cases where fleet centerpieces are moving when they really should not be moving, then please let us know; we haven't tested this one yet, but it has a high chance of working (and certainly shouldn't make anything worse).
    • Thanks to AnnoyingOrange for reporting, and ptarth for finding the likely culprit.
  • The dropdowns for hunter type and warden type in the lobby now actually explain what they do! They have full tooltips now that explain each type. Even Chris hadn't been sure what all the types were.
    • Additionally, the Base Oriented type for the warden is now first in the list for the warden since that is the default.
    • The Normal type for Hunter fleets was a pretty bland name, so it has been renamed to "Intelligent Predator" to make it a lot clearer how that works.
    • The No Bases type for Warden fleets was also kind of unclear, so it has been renamed to Anticipatory.
    • Thanks to tutee for reporting the oversight, and Puffin for actually explaining them!
  • The tooltips for ships now also explicitly note which ships do NOT get upgraded by fleet EXP gains, not just those that do. This should ease some areas of confusion that some players have run into.
    • Thanks to Ecthelon for reporting.
  • Another nullref exception in the waves notifications that could happen right after game load is now fixed.
  • Any turrets or other things granted via GCAs (new above) are now shared between all players in multiplayer.
    • Additionally, for the existing Intra-Galactic Coordinators, those are also now shared as a bonus between all players in multiplayer in terms of the ship cap increase that they grant.
  • The objectives on the sidebar that show capturing fleets or battlestations now show the general type of the fleet (officer, support, whatever) in their basic name. Now you can actually see what is going on better!

Version 0.872 Supply and Control

(Released July 3rd, 2019)

  • Add a setting for FRD mode available via GalaxySettings; if you disable it then your ships will spread out a bit more in FRD. It's a pretty subtle difference.

"Supply" Requirement Removed

  • The concept of supply has been removed. This is something that was super annoying to the point of making some folks not even want to play the game just because of this feature.
    • There are some things that, because of the removal of supply as a requirement for ships, will cause players to want things like old-style control groups and whatnot. However, rather than going back down that road (which is a lot of micro for you as a player), we have a whole other slate of tools planned that should make you very happy and able to do a lot of things you want: https://bugtracker.arcengames.com/view.php?id=21310
    • That said, those things are not in place at all yet, but we're removing the supply concept in advance of those additions because it was just so darn annoying.
    • Thanks to RocketAssistedPuffin for suggesting.

Tractor Changes

  • The AI will now have tractor ships actively try to kidnap your ships and drag them off planet. This includes AI Black Widow Golems, Tractor Guardians, Etherjet Tractors and their variants.
    • Feedback on how intelligent this behaviour is would be appreciated (ideally with a save game)
    • Thanks to ptarth for suggesting
  • Tractor Systems can now be configured to tractor more things at higher mark levels. I'm not sure what mischief Puffin is going to use this for, but I look forward to finding out
    • Requested by Puffin
  • Ships caught in a tractor beam are always allowed to shoot at the tractor source that has caught them. Also they will be more likely to shoot at said tractor source
    • Requested by Puffin

Bugfixes

  • Remove some duplicated logic in the GameEntity HoverText. No functional change
  • AI Drones will now fight to the death instead of retreating from the planet; they would just attrition to death anyway once they left the planet
    • Thanks to WeaponMaster for the bug report
  • Make Clusters: Small and Clusters: Medium map types work
    • Thanks to UFO for the bug report
  • Mobile Combat Factories (and Gyrn) are no longer allowed to build ships while crippled.
  • Fix a bug where reprisal waves were double-sized. Also the notification now shows the "time till wave is sent" in the icon itself. The hovertext for the notification also explains that the waves are 1.5x normal wave size.
    • Thanks to WeaponMaster for the report
  • Fix a null reference exception in the EntityHover code
  • Fix a bug where ships deployed from guard posts against minor factions (in particular, the Dyson Sphere) would just go after the player
    • Thanks to Puffin for the report and TechSY730 for some additional saves. Possibly other people reported it as well?
  • The "Debug: Kill Enemies" button now kills all units hostile to the player on a planet, not just AI units
    • Thanks to Oval for requesting
  • Fix (or at least significantly improve) a bug where your units would stutter as they moved toward enemies to fight. This has the pleasant side effect of making autobombs and the like suck slightly less.
    • Reported by a lot of people, including Puffin and Ecthelon
  • Make Autobombs and other melee units no longer fire shots sequentially; this improves the delay before Autobombs go off. It's still not great, but it's an improvement.
  • Hopefully fix a rare null reference in the Decollision code
  • Improve the Incoming Damage Detection code to take multishot ships into account. This should (hopefully) make your units better able avoid overkilling targets.
  • Ships dragged through a wormhole via tractors will now pop out a short distance from the tractoring unit, instead of stacked right on top of the tractor
    • Thanks to ptarth for the bug report
  • Fix a bug where a hostile-to-player only or hostile-to-AI only devourer golem would no longer try to kill the zenith trader
    • Thanks to Ovalcircle for reporting
  • Fix a bug where ships could go through wormholes while the game was paused
    • Thanks to hawk for reporting
  • Scrapping units on planets with Dark Spire Vengeance Generators now correctly generates energy for the VG
    • Thanks to Ovalcircle for reporting

Balance Tweaks

  • Greatly increased many of the Instigator Base effects.
    • Strengthen Waves and Strengthen Hunter Fleet are quadrupled.
    • Strengthen CPA and Strengthen Wormhole Invasion are doubled.
    • Strengthen Warden Fleet is tripled.
    • Unit Spawner now spawns every 90s instead of 20, but spawns significantly more each time. This means it is a much more consolidated force, rather than a trickle.
      • Thanks to Badger for reporting these aren't something to be bothered with at all.
  • Pike unit high hull health bonus reduced from 4x to 2x.
    • Unlike MLRS, which operate on low health and thus effectively had a cap on how much the effect could do, Pikes could often one shot units entirely with this bonus. Coupled with the fact they already have another damage bonus, this was a bit much in practice.
    • The bonus is still cool, so it's preferred to keep it. Want to keep an eye on it though, since that's a nasty result of it that was only just spotted and may have contributed to the feel of Strikecraft being mere chaft.
  • A minor nerf to reprisal waves
  • Military Command Station damage boost 50% -> 25%, increase per mark 50% -> 25%.
    • This was likely far too much beforehand, but with Experience allowing these to rank up, it needs to come down.
  • Military Command Station metal production 60 -> 20.
  • Added a bunch of mono-type AI Ship Groups for Guard Posts and Turrets.
    • So now a bunch of AI planets will have only one type of Post, and one type of Turret. There is still the possibility of having an utter mishmash, but far less.
    • Thanks to ptarth and Annoying Orange for bringing the point up separately that this mess forces generalist compositions and the old conundrum of "anti-bomber Post under a Forcefield" from Classic, in a way.
  • Tractor Arrays, Ensnarer Battlestation, Black Widow Golem Ark, Tractor Guardians and Ensnarer Turrets now all gain some tractor count per Mark.
  • Cloaking and Tachyon Systems now increase their Points by 50% of their base value each time they Mark up.
    • Now upgrading Tachyon Arrays and Sentry Frigates actually does something beyond health, and this lets sneaky units last longer around lower tier detectors.

Multi-AI income increase

  • Previously each AI's strength was "Strength of a single AI" / "Total number of AIs in galaxy". Now the logic is as follows
    • For difficulty < 5, keep the old logic
    • For 2 or 3 AIs, each AI is 75% as strong as a single AI (this is up from 50% as strong and 33% as strong)
    • For 4 or more AIs, each AI is 50% as strong as a single AI (this is up from < 25%)
      • This will be a sudden jump in AI difficulty

Strikecraft

  • Space Plane and Mirages now only take 1% damage from enemies beyond their range, down from 50% and 25% respectively.
    • This is more like their Classic incarnation, with the change of they can be hurt by the thing they're targeting, as there is no way to bypass radar dampening here.
  • Mirages now have the same health as Space Planes, damage 65 -> 40, bypasses personal shields completely, and has a damage bonus against anything with healthy hulls.
    • Essentially, it's now terrible at actually killing something outright, but amazing at weakening it for something else to clean up.
    • Thanks to StarKelp for developing this idea!
  • Etherjet Cloak re-enabled, damage and reload time quadrupled on all variants, albedo 0.3 -> 0.7, speed 1,200 -> 1,600.
    • For some reason, they were able to Tractor while Cloaked for some time now, so that system is re-enabled, and the weapon is adjusted to slow the rate they drain their own Cloaking Points.
    • Coupled with the new AI behaviour with Tractor units, these should hopefully behave more like their Classic incarnations.
  • Adjusted numerous Strikecraft strength values, and also their ai_cost_to_purchase values to better fit how powerful they actually are.
    • A lot of these were overpriced for the AI, so now there'll be quite a few more of them when found.
  • Vanguard health increased 30%.
  • Vanguard Hydra Head damage 60 -> 140, speed 400 -> 600, now spawns in groups of 5 and are invulnerable for 8 seconds after being spawned.
    • Some poking showed these to not really work as originally intended. The normal Vanguard is pure tanking, so to help diffentiate Hydras, their Heads are now much more offensive orientated.
    • Spawning more Heads also helps to emphasise that particular trait (and adds more offense), and the invulnerability guarantees they get some damage done instead of being picked off due to such low health.
  • Ablative Gatling/Troll health increased 30%.
  • Agravic Pod damage 80 -> 100.
  • Concussion Corvette damage 70 -> 96.
  • Porcupine damage 50 -> 80.
  • Grenade Launcher Corvette/Molotov health increased 30%.
  • Dagger health increased 50%.
  • Eyebot health increased 25%.
  • Zapper shields 2,000 -> 3,000.
  • Parasite/Persuader health increased 50%.

Frigates

  • Brawlers lose all shields, gain it in hull. Their missiles now cause knockback, some engine stun, and also have a damage multiplier against anything slower than its base speed. Damage 300 -> 200, reload time 3s -> 2s.
    • It's now kind of like the Translocator Starship? Shove little guys around and slow them down with some damage as a bonus.
    • Also thanks to StarKelp for developing this idea! It's a little different, but the spirit is there I think.
  • Forcefield Frigate shield size increased, size of the ship itself decreased, shields 200k -> 250k.
    • So it covers more, and isn't taking up as much of that space itself. Also lasts a bit longer, since it'll probably be hit more often.
  • Siphoner shields 120k -> 160k, damage 2,000 -> 250, reload time 4s -> 1s, now does 5x the damage to a target if it has more than 50% personal shields left. Vampirism gain changed from 5HP per 1 damage to 7HP per 1 damage.
    • Lasts a bit longer for the same reason, shoots faster so it's a more constant regeneration, and better suited to breaking down things like Guard Posts and...well, siphoning the shields off stuff.

Flagships

  • Armored Golem damage 2,000 -> 1,000, Sabot damage 3,000 -> 2,000.
    • This thing by far dominates its Fleet, and was really pushing the smaller units out of the game, since things had to be balanced for the player having these.
    • It was actually pretty absurd, being the toughest and best damage dealer of the bunch so...no surprise people felt it was dominating.
  • Cursed Golem damage 1,250 -> 700, Sabot damage 2,000 -> 1,500.
    • A similar case. This thing is much longer ranged than the Armored, and has paralysis to boot (including the very rare ability to paralyse bigger targets), and so also dominated the Fleet.
  • Botnet Golem damage 500 -> 450.
    • Really minor, but just brings it in a tad more.
  • Black Widow Golem damage 500 -> 200, tractor count 350 -> 250.
    • Same deal with the above ones. This thing has a lot more shots than normal for the purpose of engine stun, so the damage is definitely low per shot.
    • Tractor count is lowered since it now gains some with Mark.

Guard Posts

  • Stealth Guard Post albedo 0.4 -> 0.7.
    • Missed it long ago.
  • Pike Guard Post damage 1,200 -> 600.
    • This thing had far too high a generalist damage. Coupled with the high hull health bonus, it was capable of slaughtering things it really shouldn't have been.
  • Moved half of Guard Post hull into shields.
    • In a previous update, Guard Post durability was doubled. This unfortunately really hurt Fusion Bombers, coupled with the fact you generally have less of these specifically than you used to early on.
    • By shifting the hull over, they retain their overall durability, but are weaker to Fusion Bombers, letting them be the experts of Post demolition again.
  • Moved two thirds of Dire Guard Post hull into shields.
    • They now follow the same hull/shield ratio as the normal Posts.

New Hacks!

  • Bunches of new features for our hacking system.
    • only_for_ai_planets allows us to make hacks against planets that are AI-only.
    • added_cost_in_hacking_points_per_mark_level_of_planet allows us to add increased costs based on the mark level of the target planet.
    • max_mark_level_of_ai_planets allows us to make hacks only work against planets of a certain mark level or below. Aka not working against homeworlds or other mark 7 worlds, as one big use case.
  • Added a new hack, which is tested and does work: Weaken AI Turrets
    • Hacking into the local AI network will reduce the range of AI turrets to 25% of their normal values, and their damage output to 50% of normal. Only works on planets of mark 6 or lower.
    • Costs 1 hacking point at mark level 1, plus 5 for each mark level of the planet above that.
  • Added a new hack, which is tested and does work: Weaken AI Guard Posts
    • Hacking into the local AI network will reduce the range of AI guard posts to 50% of their normal values, and their damage output to 75% of normal. Only works on planets of mark 6 or lower.
    • Costs 5 hacking points at mark level 1, plus 10 for each mark level of the planet above that.

Prior Release Notes

AI War 2: The Arrival of Fleets