AI War 2:The Arrival of Fleets

From Arcen Wiki
Jump to navigation Jump to search

Contents

Known Issues

  • The tutorial is temporarily disabled while we redo a bunch of stuff.
  • Multiplayer is temporarily disabled while we focus on tightening up the single-player loop.
  • 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 a major revamp of some systems based on cumulative feedback in order to push the game even more towards the feel of the original game... despite further divergence from it at a mechanical level.

What's this phase all about?

After 3 months of Early Access and 2+ years of development, we've reached a point where we know what we want the 1.0 version of the game to look like. SO very much about this game already works well, but there are some major deficits coming into this phase when comparing this sequel to the original game. The aim of this phase is to close those gaps and make this clearly the superior product in terms of playability, fun factor, the amount of fun thinking-about-interesting-challenges you do during gameplay, and so on.

There's also of course still more polish and bugfixing that we want to get done, and the lobby redo is still scheduled of course (but quick starts are an awesome alternative, and have helped us to defer a final design for the lobby as we formed up some other bits of the game first), but we're feeling really good about this final sprint toward 1.0. We still do need to also finish some graphics for the existing ships, but they all have their icons.

There is some more content coming as part of this phase, kind of by definition -- fleets as a concept Change Everything in a good way -- but the focus is on taking what is a pretty awesome game with a lot of depth and pushing it to a level that we hope beats the pants off the original, finally. Stay tuned.

Version 0.867

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

Bugfixes and Improvements

  • Zombies should not be counted as Threat; they can be Hostile to the player, but aren't part of the AI's coordinated attack force
  • Warden Secret Ninja Hideouts are now valid reinforcement points.
    • Thanks to WeaponMaster for pointing out this oversight.
  • Previously, if ships couldn't shoot at something for whatever reason, they would wait for 0.8t o 1.6 seconds before trying to fire again. This made ship shots more offset, and prevented hammering a fairly CPU-intensive method, but also caused issues with them seeming really sluggish to respond to things or retarget.
    • Now they will wait between 0 seconds and 0.2 seconds instead, which should be vastly more tolerable. It will still make the shots firing slightly offset, and will reduce load a bit, but should be imperceptible to players that there's ever a delay of any note going on here.
    • Thanks to Ecthelon and RocketAssistedPuffin for reporting and identifying the issue.
  • Put in a probable fix for the issue with the same music track playing over and over again if you didn't have the classic AI War music enabled.
    • This hasn't been tested, but should work.
    • Thanks to B and Drinks for reporting, and Badger for hunting it down.
  • The Objective for destroying Coprocessors now tells you how many are left in the galaxy.
  • When importing partial fleet names, or planet names, it no longer trims the whitespace off the edges of them.
    • This makes it so that you can make two-word fleet names, for example.
    • Thanks to trillioneyes for suggesting.
  • If a player kills a reconquest AI command station after a minor faction killed the original (so the player is incurring AIP by killing the reconquest AI command station) then allow scouting.
  • Fixed a very strange bug that could lead to error messages not popping up because mysteriously the modal popup data was null.
    • This will now remove the offending popup message and silently log an error to the log since trying to put another popup in there when the popup just failed is probably not the best idea.
    • Thanks to UFO for reporting.
  • More debug info has been put into the tooltips for ships when that toggle is turned on in the personal settings debug section. This is revealing to us at the moment how often the targetPriorityList is empty (for some reason!) when ships are trying to pursue enemies. Not sure yet why that is the case, but this is the cause of the "movement stutters" reported by Ecthelon and RocketAssistedPuffin relating to units in pursuit mode. Thanks to Puffin for the repro save.
  • Fixed a bug with the strength counting for the side bar and galaxy view, reconstructed turrets should properly contribute to a planet's strength again.
  • Give the player more Dyson Defenders when they hack the Dyson Sphere.
  • Improve the BigCircle code for Simple/Realistic to hopefully have it work now.
    • Thanks to UFO for the initial bug report and weapon master for some research

Better Handling Of Reinforcements Being Released

  • There was a strange thing where units were often being transferred from guard posts to other places, sometimes ones that could not be reinforcement points at all.
    • Likely this was an artifact of how we changed reinforcements over time in the design, and the intent of the transfer isn't super duper clear as it is. But the transfer is being kept for now, but now those transferred units are simply not transferred unless the target is also a reinforcement point. We can revisit the transfer itself later if it turns out to be a problem.
    • Thanks to WeaponMaster for finding this issue in a code review.
  • The game now checks all units (just once per second) to see if they are aggro'd and have any units stored in them to set free, not just the "reinforcement points" that are preordained.
    • That way if there are any reinforcements hiding in a unit that was not initially supposed to have them, but that got transferred them by whatever arcane methods (it's okay, really), they will behave properly. There are some cases where this might be desirable behavior, and having the extra flexibility here doesn't cost us much in terms of the CPU usage, so that's good.
    • Thanks to WeaponMaster for reporting, as well as finding the issues in a code review.
  • Now when a unit dies, if it has reinforcements inside it for whatever reason, it should dump them all out immediately. Previously if you managed to kill a guard post full of reinforcements in under 1 second, then the guards would all die in the fire of their parent. Now they go free and attack you, as was always intended.
    • Thanks to WeaponMaster for reporting, as well as finding the issues in a code review.

Planet Naming Styles

  • As in the first game, the first planet added to the map is now always named "Murdoch." This tends to be a significant planet, and the interest of this happening and frequently being an important planet was not lost on people and kind of became part of AI War lore.
  • There are now multiple planet naming styles that you can choose from:
    • Standard (what it has been until now)
      • Inspired by famous scientists, along with real and fictional named planets and locations from other works. Created by Chris and Keith.
    • No Gravitas
      • Inspired by phrases and spaceship names in a pretty humorous sci fi series. Created by Draco18s for AIWC (edited by Chris).
    • Fantasy Monsters
      • Inspired by the names of monsters in several fantasy games. Created by Zoutzakje for AIWC (edited by Chris).
    • Kahuna's Real Stars
      • Absolutely enormous list of actual star names, including codenames for them. Plus a few easter eggs in there. Created by Kahuna for AIWC.
    • Kahuna's No-Codename Stars
      • Absolutely enormous list of actual star names, but minus the codename-y sort. Plus a few easter eggs in there. Created by Kahuna for AIWC.
    • Cities (DE)
      • Most cities in Germany show up here, if they are 10 characters or fewer. Created by Viss Valdyr, and was the original inspiration for this change to the game.
    • Cities (UK)
      • Most cities in the UK show up here, if they are 10 characters or fewer. Created by Viss Valdyr.
    • Cities (US)
      • Most cities in the US show up here, if they are 10 characters or fewer. Created by Viss Valdyr.
    • Cities (RUS)
      • Most cities in Russia show up here, if they are 10 characters or fewer. Created by Viss Valdyr.
    • Cities (FR/SPA)
      • Most cities in France and Spain show up here, if they are 10 characters or fewer. It's a shorter (and combined) list because most of their city names are quite long! Created by Viss Valdyr.
  • When using the Real Stars lists, which are tens of thousands of entries long, we discovered that map generation would take several seconds to part of a minute.
    • Due to this discovery, we made a big improvement to the speed of name choosing for planets, and as a result all of the lists now generate in approximately the same amount of time (and much faster than before), making the lobby more responsive-feeling.

Balance Tweaks

Strikecraft

  • AutoBomb damage radius 600 -> 1,200, speed 2,200 -> 2,900.
  • Cluster Bomb speed 1,000 -> 1,800.

Transport Flagships

  • Range 5,600 -> 12,000.
  • Damage 1,500 -> 500.
    • Thanks to Badger for suggesting a much further range on these, to avoid them being suicidal in combat. To avoid it being a weird fusion sniper, damage is lowered as well. It's pretty much just a weapon so it counts as a combatant.

Version 0.866 Hotfix

(Released June 4th, 2019)

  • Fixed Enraged Macrophages having 1/10th of the shields of normal Macrophages.
    • Thanks to Democracy for spotting.
  • Macrophages now spawn at the correct mark level
    • Thanks to Democracy for reporting
  • Fix a bug where we were checking the Stacking Cutoff in the wrong way, and that was basically Breaking Everything.

Version 0.865 The Return Of Deepstriking

(Released June 4th, 2019)

Lobby Improvements and Fixes

  • In the lobby, the header sizes for some of the text on the map tab line items is now a bit larger.
  • In the lobby, on the map tab it now has the Randomize button up next to the Map Seed, as a half-width button again, to show its lesser importance. This definitely helps it be confused with the Regenerate Map button less.
    • Thanks to UFO for reporting the confusion.
  • The game now supports actions being triggered when you press enter or return in textboxes.
    • We have to hook this up via a new OnEnterOrReturnPressed() method on a case-by-case basis, but the first place that this is now being used is in the lobby on the map seed textbox. Pressing enter in that now causes the map to regenerate.
    • Thanks to UFO for suggesting.

In-Game Ability To Change A Subset Of These

  • The Performance section of the regular settings screen has been removed, and the singular option from there (when to start stacking units) has been moved into the Lobby Options instead. This way this will function properly during multiplayer, since this is a global thing and not a local setting.
    • Thanks to Badger for suggesting.
  • The settings screen now has a header of "Personal Settings," instead of "Game Settings," to be a little more clear.
  • In the escape menu during gameplay, you can now see two options: "Personal Settings," and "Galaxy-Wide Options."
    • The new Galaxy-Wide Options screen is basically just a subset of the Options tab from the Lobby screen. It's only the options that make sense for people to be able to change once the game has started.
    • To make any option show on this screen, the xml tag changeable_during_gameplay="true" simply must be added and it will be there.
    • This lets players, presently, change the contents of the Scouting and the Performance tabs. Later we may add other things, but these were the only things that didn't seem like they would be exploitable by players in some way. And the only things that aren't cached by the AI factions or whatever, and aren't just something for during mapgen like how many capturables are seeded.
    • This is actually a pretty powerful new tool we have, which will let us do some interesting things in the future beyond what we have right now.
    • Thanks to Badger for suggesting.

Selected Units Improvements and Fixes

  • Fixed a longstanding issue where if you clicked a single item in your list of selected units in the lower right corner, it wouldn't just limit down to that only.
    • Basically we can't call Unselect() from inside DoForSelected(), we need to return RemoveAndContinue instead or else if will skip indices.
    • Thanks to Jonesmz, Kahuna, and Dominus Arbitrationis for reporting.
  • If you have selected some ships that are remains (turrets, whatever), then those now show up as separate line items in the list of selected ships, and show REMAINS next to themselves.
    • Thanks to Dominus Arbitrationis for suggesting.
  • In the UI, if you have selected a fleet directly, rather than selecting just all or some of the units from it, it now shows the fleet itself in the selection window.
    • Functionally there is no difference from before, as selecting a fleet would select the fleet as a whole plus any new ships that were inside it, and that is still the case. But now you can visually tell that.
    • Thanks to trillioneyes for suggesting.
  • Previously, the only way to "select a fleet" was to right-click it in the fleets sidebar, or to use the number key assigned to that fleet. Now you can also double-click the fleet centerpiece and that will select the fleet rather than just selecting all the units inside it.
    • Thanks to trillioneyes for suggesting.

Sneaking Around AI Planets

  • Added a new setting to the AI Behavior section of the lobby options: Guard Aggro Distance
    • At what distance from an enemy will a guard post release its internal ships, or will a ship standing near a guard post leave its post to attack the enemy? Default is 5000.
    • Note that if the guard post or one of its ships get shot, then they immediately aggro no matter what the distance. This is about them noticing someone who is being passive.
    • Default is 5k, min is 3k, max is 10k. Prior to this build, this was hardcoded in at an insanely-high 13k, which is half the gravity well. That made the AI just absolutely notice everything you did immediately, and made the planets feel smaller than they are.
      • The ranges of ships may also be a bit too on the high side in some cases, in terms of making the gravity wells feel too small and cage-matchy, so we might make some changes there to reduce ship attack ranges, but we shall see.
    • Thanks to RocketAssistedPuffin for suggesting. Hopefully we can actually do some deepstriking, now!
  • Fixed an issue where AI units were being aggro'd even by cloaked ships. Ships that are cloaked no longer can cause guards to notice them at all.
    • Thanks to RocketAssistedPuffin for reporting.

Bugfixes

  • Fixed a super longstanding issue with the hitboxes for planets being strange/biased on the galaxy map. This was because, as WeaponMaster discovered, the important structures icons were never disabling their colliders and thus there was a giant invisible area where hovering would select the wrong planet.
    • Thanks to rkfg, Mckloshiv, Draco18s, Ovalcircle, and WeaponMaster for reporting.
  • Put in some defensive code that will give us better errors when there are problems linking planets up in octopus maps or various others.
    • This likely won't fix the actual issue, but will let us find out where the issue actually lies.
    • Thanks to UFO for reporting.
  • When the player command station type changes at a planet, it now properly removes all of the command-station-fleet ships that are not a part of the new command station's fleet design.
    • It was already properly doing this in terms of making ship counts drop for types that it now had too many of, but it wasn't clearing entire ship types that were disallowed.
    • There was already a destroys_self_until_not_over_ship_cap_if_planetary_command="true" xml flag that you could put on ships in order to make them not reduce their count to match whatever the new command station is.
    • Now there is also a new is_auto_scrapping_skipped_when_command_station_type_changes="true" that prevents this scrapping logic from happening at all if the type isn't a match to the new command station fleet type.
      • This is pretty important for things like the Zenith Power Generator, or other capturables, which are not part of the fleet design but should remain. Same for anything you might buy from the Zenith Trader.
      • This has been applied to all the relevant structures and ships so that they shouldn't disappear, but that hasn't been explicitly tested, so please let us know if you see problems with those sorts of things.
    • Also please note that losing your command station doesn't cost you any units. It's not until you rebuild the command station as a different type (switching from economic to miltiary, for instance) that it changes what you're allowed to have.
    • Thanks to TechSY730 and AnnoyingOrange for reporting.
  • When the fleet definition would show a zero cap, it no longer shows you that in the fleet tooltip. This is for things like command stations that were switched, or old turret types from an old command station type, etc.
    • Essentially it was just extra visual clutter for no reason (well, the reason was that it was an oversight).
  • Corrected a tooltip in the lobby to note the new default that there are three battlestations on each planet that you would capture.
    • Thanks to trillioneyes for reporting.
  • Fixed a variety of visual glitches with the Zenith Trader:
    • The notification at the top bar now says "Zenith Trader" rather than "Zenith ???".
    • Some of the items for sale on the sidebar now have sidebar abbreviations so that they can fit on one line properly.
    • Rather than saying "unnamed" for the fleet name, it says "Zenith Trader," so you can tell where that's coming from.
    • Thanks to AnnoyingOrange for reporting.

Version 0.864 Humanity Strikes Back

(Released June 3rd, 2019)

  • Some minor tweaks to the Simple and Realistic map types to decrease connectivity
  • Dyson Antagonizers now only spawn on Intensity 8 or higher, and are less frequent
  • A new Instigator Base type has been added that strengthens the Warden Fleet.
    • Thanks to kesseleth for thinking this up and also implementing it!
  • Add one more Basic Quickstart, as well as three Moderate Quickstarts.
    • Two Moderates are returning (with some changes) and the third is new.

Bugfixes

  • Fixed a bug causing crippled mobile factories to still be able to produce ships if engineers assist them.
  • Put in two separate instances of defensive coding to prevent index out of range exceptions.
    • One is in Inner_CheckForCollisionOrMakeEntityMove, and will simply identify the problem if we have one there, but it's unlikely we actually have on there.
    • The second is in the three DoForEntities methods on EntityCollection, and basically make it so that if they try to index beyond what they should (because of cross-threading competition, most likely), then it will just gracefully continue on.
    • Thanks to TechSY730 for reporting.
  • Put in several layers of defensive code that should prevent null reference exceptions from happening in certain rare cases with the Warden fleet trying to pathfind around.
    • Thanks to MatthewYCR for reporting.

Hunter/Warden difficulty differentiation

  • Give the Hunter Fleet some bonus income independent of the AI for intensity >= 7
  • Give Hunter and Warden fleets an Overconfidence Ratio; hunter/warden fleets will overestimate their strengths at lower difficulties
  • Hunter and Warden fleets now choose less effective targets to shoot at lower difficulties

Human Player Balance Shifts

  • The default number of battlestations per planet is now 3, rather than 2. This should make it so that you have an easier time defending your planets without having to capture SO darn many other planets. And there's nothing that really says you have to use every ounce of those battlestations' capacity, so if you're doing well then you can use this opportunity to be more choosy about exactly which kinds of turrets you build out of them, rather than maximizing constantly.
    • Generally we've been getting the sense that on difficulty 7 things have been a bit on the difficult size, mainly in terms of the AI being able to mobilize more stuff than you, and you feeling perpetually poor, which is not a good feeling to have on the "standard" difficulty. Difficulty 7 has been coming out more like between difficulty 8 and 9 from the first game is the feeling, at least recently, and that has to do with the ability you have to defend yourself instead of the AI being clever or whatever else.
    • Thanks to Ecthelon for the most recent report and suggestions.
  • Human Cryogenic Pods now give 7500 energy instead of 5000.
    • Rather than being forced to have 10 of these on your starting planet, it now lets you choose between 0 and 30 of them. The default is still 10.
    • Thanks to Ecthelon for inspiring this change.
  • On your home planet, the starting positions of the cryogenic pods and the home human settlements are way closer to your actual home command station, and thus stay under your forcefield a lot longer.
    • Thanks to Ecthelon for inspiring this change.
  • Human Home Settlements now give 520 metal per second rather than 280 metal per second.
    • There is also now a slider on the setup for the human factions in the lobby that lets you configure if you want the default 2 of these, or as few as 0 or as many as 5.
    • It's worth noting that this is essentially like an economic boost slider, in a lot of respects, except that it has more to do with the early game than the entire game, AND it has potential disastrous consequences in AIP. Much more interesting than the economic multiplier in the first game.
    • Thanks to Ecthelon for inspiring this change.
  • The forcefield on the home human planets is now scale 5 instead of 4 (normal forcefields are scale 3).
    • This provides a much longer window before your shields are low enough that your stuff under it can be shot up (particularly the cryo pods), while still keeping the shields-shrink mechanic consistent.
    • Especially with how the cryo pods have moved more inward anyway, this really should keep them pretty safe against a lot of incursions.
    • Thanks to Ecthelon for inspiring this change.
  • Energy Boosts:
    • Military Command Stations now provide 20k energy, with an added 5k energy per mark level, rather than 2k and 2k.
    • Economic Command Stations now provide 100k energy, with an added 20k per mark level, rather than 10k and 10k.
    • Logistical Command Stations now provide 50k energy, with an added 50k per mark level, rather than 25k and 25k.
    • For comparison, the basic Energy Collector produces 150k energy, and the Zenith Power Generator produces 600k energy.
    • Thanks to Ecthelon for reporting the energy shortages that were now likely to be common in standard play simply because of how many more units you have in play using up that energy.
  • Citadels:
    • Citadel Shields 125,000 -> 175,000.
    • Citadel Energy Consumption 50,000 -> 30,000.
    • All Citadel shots per salvo doubled, excluding Inhibitor which is only increased 50% (it was higher than the others by a fair bit already).

Version 0.863 Control of Capturables

(Released May 31st, 2019)

New Lobby Settings for Controlling Gameplay

  • Added new setting to the Scouting section of the lobby options: Max Planets To Scout At Once
    • Depending on the topography of your map, capturing a planet may cause a TON of planets to suddenly be revealed. Rather than this getting TOO crazy and showing you the whole map after you capture one planet, this lets it be more gradual. The default is 8.
    • Ranges from 3 to 40.
    • This is a good example of the new types of things we can do thanks to the Lobby Options tab, which we couldn't cleanly do before using the regular game settings (because of multiplayer sync, and the potential for abuse with mid-game changes, etc).
    • Note that this is so far untested, so let us know if there are bugs.
    • Thanks to Mckloshiv and BadgerBadger for suggesting.
  • A new capturables section has been added to the lobby options, with 6 different options in there that you can now tune.
    • This is one of the first examples of an option that affects mapgen seeding but not then the gameplay after that.
    • These basically let you control how many of each type of fleet you'd like to have out in the galaxy, in a multiplier-like fashion.
    • It also explains what all the kinds of fleets are, and what their role is in the game, so that's kind of a self-teaching moment, which is nice.
    • As one example, it lets you turn off basically all the officer fleets (all but one of them) by setting the multiplier for that to 0x, and you could then double or triple the number of regular fleets to compensate. This would let you have a very hero-less sort of game style, if you don't like the big centerpiece flagships being there at all. Or of course you could completely reverse it, and make it very hero-centric with only two (in that case) transport-based fleets, and instead have all the rest be officer-style.
    • Thanks to Nameless Terror for inspiring this addition, which lets people have more the flavor of game they want.
  • Added a new slider setting to the capturables section of the options menu in the lobby: Basic Battlestations Per Planet
    • Your command stations give very few turrets for defending themselves (except the Military variant), so in order to defend yourself you'll want to capture battlestations (which come with LOADS of turrets and other defensive goodies).
    • Since you have to capture territory to get a battlestation for defending territory... it makes a lot of sense to have more than just one on any planets that have them. The default is 2, but you can have up to 4, or make things really hard and just have one.
    • Thanks to Nameless Terror and others for inspiring this new flexibility.
  • Added a new slider setting to the capturables section of the options menu in the lobby: Citadels Per Planet
    • Similar to the basic battlestations, these provide defensive goodies and turrets to help defend your planets. However, since the citadels themselves are also giant fortresses in their own right, giving only one per planet seems to make the most sense for most cases. But if you want to grant yourself more, you can!
    • Thanks to Nameless Terror and others for inspiring this new flexibility.

Quick Starts Return

  • Quick Starts have been added back into the game, and now function again.
    • However, we had to create a whole new set of them, since the old quick starts were all in the old savegame format and also didn't really have settings that make sense anymore, anyway.
    • The order for the categories of basic, moderate, and harder is now in the order you would naturally expect (1,2,3), and then the Fun With Factions are later on. As will any other generalized quick starts be.
    • We have only added in three quick starts thus far, all in the basic category. The others we'll work on soon.
      • One has the classic fleet as the starting situation, with a difficulty 6 AI and 100 planets on a realistic map.
      • The next has the classic fleet, with two difficulty 6 AIs and a 120 planet Octopus map.
      • The last has the raid fleet, with one difficulty 7 AI, and then also the Zenith Trader wandering around. Clusters microcosm map.
    • Thanks

Bugfixes and Minor Interface Improvements

  • A variety of changes have been made to the map generation code and interface so that the number of planets allowed per galaxy is now shown as a slider, and is properly enforced at all times.
    • The actual map types have also had their minimum and maximum numbers of planets brought inwards some -- up from 10 in most cases to 40 for the minimum, and down from 200+ to 120-200 on most of them. For Realistic, which is particularly slow to generate right now, it has a cap of 100.
    • All of this should prevent some of the long-running slowness that could be encountered previously and that would lead to strangeness if it was taking 5-10 seconds to generate the basic outline of a map.
    • Thanks to UFO for reporting.
  • Also put in some defensive code for cases where potentially there could be an error happening in mapgen if it was aborted partway through, and thus didn't have a parent galaxy for a planet it was trying to find the neighbors for.
    • Thanks to UFO for reporting.
  • The escape key now works in the lobby to close it.
    • For whatever reason it doesn't work to close the add factions popup, but we can deal with that another time.
    • Thanks to dv = i ln(w0 / wf) for reporting.
  • Fix divide by 0 in PlanWave
    • Thanks to Oval for reporting
  • Put in some defensive code to prevent errors when trying to find out the strength or contents of a ship that has a null fleet or other similar issues.
    • Thanks to Ovalcircle and Badger for reporting.
  • Fixed a typo in the Direct Waves tooltip.
    • Thanks to Ovalcircle for reporting.
  • Added a new HandlePostSavegameLoadLogic method that gets called on World_AIW2 after a savegame is loaded, giving us a chance to fix any problems in it.
  • Fixed up the DoGameStartLogic method for galaxy settings to allow for this to be called when it's a string value that has been set.
  • Added a new DoAfterSavegameLoadLogic method for galaxy settings to allow for these to do fixes to existing savegames that might have some issue.
  • When the "Ally To AI" option is on, now any allies of the AI will automatically ally with you as well. So this means AI Instigators, etc, become your friends as well.
    • This also retroactively fixes itself in existing savegames.
    • Thanks to Ovalcircle for reporting.
  • Fixed a typo that was causing the warden difficulty to come before the warden type in the lobby settings.
    • Thanks to Ovalcircle for reporting.
  • Double-clicking a faction in the add faction window now adds it without you having to click it and then click ok.
  • Fixed a bug in the factions tab of the lobby where if you were clicking between two factions of the same type (for example, marauders), then any dropdowns used by those two factions would not be properly updated to the real values of the new faction when you click from the other faction.
    • Thanks to Ovalcircle for reporting.
  • Until now, if savegames in the old pre-0.850 branch were attempted to load in the new game, then it would just silently do nothing. Now it throws up a visible error telling you that the savegame is an out of date format.
    • Thanks to BandDrinks for the savegame that led us to finding this.
  • The test chamber, which was broken during the lobby upheaval, is now fully functional again.
    • Interestingly, for some reason you can control both your units and enemy units. Nifty, I guess?
    • Thanks to WeaponMaster for reporting.
  • Fixed a bug with clusters microcosm map types where it was trying to get a setting to display that wasn't actually used in that map type.
  • Fixed up the list of "things in my fleet" to not include command stations and some other things like that.
    • Normally that already wouldn't be showing, but if you had switched the kind of command station on a planet, then in particular it would show the other types in a way that was not helpful.
  • The scrap units hotkey (and a variety of other hotkeys that should not have been active) no longer work in the lobby.
    • Thanks to Ovalcircle for reporting.
  • The lobby now properly shows the human-readable text names for things in dropdowns on the factions tab. This makes them way more clear.
    • Additionally, the lobby now shows tooltips for individual line items in dropdowns on the factions tab if those have been set up for the table in question.
      • This is super useful for the starting fleet for the player, and the AI types for the AI, etc.
  • The AI Difficulty table now has a description field which tries to explain what each difficulty level means. This is now shown in the lobby tooltips for those.
    • Note that warden and hunter fleet difficulties don't show anything yet.

Ability To See What Command Station Fleets Consist Of Before Creating Them

  • For fleet centerpieces that you can construct from the sidebar and which have non-procedural fleet designs attached to them (for both of these categories, the command stations are the only things at the moment), you can now see what their constructed fleet will be like once they are created.
    • Basically, the upshot is that for command stations you can now see what their fleets would be before you create them. That's... kinda important info! And was causing people to not know that essentially they could get some extra military firepower by using the military command station, for instance.
    • Thanks to Ecthelon for reporting.

Version 0.862 Lobby Overhaul, Knockback, Nanocaust, and the Final Battle

(Released May 29th, 2019)

  • Add Notification for any Raid Engines that are alerted. Untested, but hopefully it works?
    • Thanks to Democracy for complaining about it

Complete Lobby Overhaul

  • The entire lobby has been redone from scratch, and now works much better as well as having a more visually-pleasing style, and fitting a lot more information in in a less-overwhelming way, and being more modder-friendly than before.
  • The map configuration now actually gets saved into your local settings file so that it's the same the next time you load back into the lobby.
  • "Conducts" (those on/off switches on the Options tab in the lobby) have been removed, and a new system under the hood has been added which allows for us to do boolean or integer data in a much more robust fashion.
  • The Wave Composition, Wave Warning, Threat Waves, Cross Planet Waves, Direct Waves, Reconquest waves, and Shark A and B settings are no longer on the AI directly, but are instead under Options in the lobby.
    • This allows for those to be more clearly set apart as advanced options, and also makes it so that when you have multiple AIs they all share these particular pieces of behavior (which is in general desired for a variety of reasons).
  • For the settings for factions, and the settings in the Options tab of the lobby, EVERYTHING is no longer dropdowns. Now there are integer sliders, bool checkboxes, and so on.
  • Previously it wasn't possible to mod in custom fields for factions and have them display in the UI without also altering the lobby code. Yikes! Now you can directly just add stuff in the xml and it shows up, same as with the settings elsewhere.
  • In the faction xml, the team colors no longer have special secondary custom field entries. This was duplicative and confusing, and previously was just done in order to make the ui lobby code simpler. We have a better way now.
  • The AI Hunter and Warden fleets no longer show up in the lobby as distinct entries. Their small amount of data is now under the main (now singular) AI faction that they are related to.
    • Since we want to have multiple AIs, but not endless clutter, it's very convenient for UI purposes to have the AIs just show as one line item per AI with their hunters and wardens wrapped into one entry.
    • This doesn't actually change the reality of underlying gameplay, but each hunter or warden looks to the AI that is most recently preceding them in the list of factions in order to get their settings.
    • It's possible in some circumstances (from well before now) for a warden to be getting some donations from some AI faction that it wasn't originally tied to, and that's fine. All of that still works, even though the original settings from the lobby came from one specific AI faction.
  • The warden and hunter factions now inherit the central color from their preceding AI faction (that they are initially tied to), and then have their own custom trim color.
    • Previously, all the hunter and warden factions were showing themselves with the same colors as the first hunter or warden faction, which is no longer a thing.
    • This is particularly useful for civil wars with the AIs, since now you can tell whose wardens and hunters are whose, and thus why they are fighting.
  • Ever hit a point while working on some code where you go "how did this ever work in the first place?"
    • Well, things like the Starting Fleet selection for players were one of those things. Clearly it worked, and worked well, but things were so sprawling and have changed so much that the method for making it work is entirely different now (and hopefully easier to follow for anyone who wants to set up "table subsets" in the future.
    • This was probably another example of some custom code in the old lobby that was redirecting some values from the more generic case to a more specific case. But now that all the data is xml-driven, that old lobby code was missing and so hence likely the confusion. Now it can be just directly driven, at any rate, which is great.
  • Fixed a bug with the nanocaust where it would start throwing errors after you win the game.
  • Setting the color of the player faction now fully properly works in the lobby.
    • Not only is it using the nice color-picker interface for all that stuff, but it's actually updating the display and the game, versus before it was just only ever using your values from your local profile. It still defaults to that, but you can now override that.
  • The debug setting for setting more than one AI type up in the lobby has been removed. You can simply add more AI types directly now. Hooray!
  • As part of all the lobby changes, you can now have any number of factions that you wish to in a galaxy without running out of room due to the way the interface is set up.

Nanocaust Buffs

  • Give the Nanocaust stronger defensive fleets when the Hive is under attack.
  • Give the Nanocaust more income.
  • Created ships start in Attacker_Full.
  • Nanocaust ships should not start patrolling until there are no enemies on the planet
  • The Nanocaust is not allowed to kill Command Stations until it has a significant advantage on a planet
    • Prompted by discussions with Ovalcircle and Democracy
  • Fix a bug where the a bunch of the Nanocaust's weapons weren't firing due to some missing XML
    • Thanks to Puffin for reporting

New Ship Mechanic

  • Knockback (translocation for AI War veterans) has been put in the game!
  • The knockback mechanic has two methods of functioning:
    • The first calculates the knockback direction based on the angle between the ship that fired the shot and the shot that hit (aka directly towards or away from your ship) and functions with all types of weapons: single target, laser, self-centered AoE (tesla ships), and enemy centered AoE (Seige frigates).
    • The second calculates the knockback direction only for secondary targets hit by an AoE (non-laser) weapon. Ships will be pushed or pulled towards the point where the shot hit, making enemy ships group up together to make other AoE effects more potent.
  • Each method works with both pulling ships towards, and pushing ships away from the target.
  • Knockback is currently only limited by mass. There is a maximum mass that will be able to be knocked back, and the closer a ship is to that maximum mass, the less knockback the ship will take (down to a minimum of 50% of the listed knockback). The equation for this is Effective Knockback = Knockback * ( 1 - ( Ship Mass / (2 * Mass Limit ) ) )
    • As an example: If a knockback had a strength of 1000 and a mass limit of 4, a fleet ship of 0.2 mass would take 975 knockback, and a guardian of 4 mass would take 500 knockback
  • Ships are immune to knockback if they are: Too heavy, are protected by a bubble shield, are projecting a bubble shield, are currently tractored, are immobile (turrets), or are immune to damage.

For Modders

  • XML tags are as follows for creating ships with knockback:
    • knockback_to_ships_mass_tx_less_than="Mass Limit" - Needed for knockback to function at all, sets the max mass that will be affected
    • base_knockback_per_shot="Base Knockback" - For markless and mark 1 ships, this is the knockback that the shot will deal. Positive numbers push away, negative numbers pull towards.
    • added_knockback_per_shot_per_mark="Added Knockback" - For mark 2 ships and up, this is how much extra knockback is added to the shots. Positive numbers push away, negative numbers pull towards.
    • knockback_at_target_location="true/false" - Setting this to true means that AoE weapons will make ships be pushed or pulled away from the center of the AoE. Defaults to false. Must have a defined AoE on the weapon for this to work.
  • C# methods
    • int EntitySystem.CalculateKnockbackPowerAgainst( GameEntity_Squad Target ) - Returns 0 if the weapon has no knockback effects, or if the ship is immune. Otherwise return the knockback from the equation above.
    • void GameEntity_Squad.TakeKnockback( int KnockbackAmount, float angle ) - For custom knockback effects, this method ignores any convention of towards or away, and just pushes the ship at an angle that you want. This method has no immunity checking in it currently, so make sure the target is actually mobile, not bubble shielded, and not tractored.
    • void GameEntity_Squad.AddKnockbackSourceForFramePlan( int KnockbackAmount, EntitySystem FiringSystemOrNull, GameEntity_Shot ShotThatHitOrNull, bool KnockbackAtTarget, ArcenSimContext Context ) - If KnockbackAtTarget is false, log the source of the knockback from FiringSystemOrNull.GetWorldLocation() and power from int KnockbackAmount. If KnockbackAtTargetis true, check that the ship this is called from is not the same ship that ShotThatHitOrNull hit, then log the source from ShotThatHitOrNull.Target.Ref.WorldLocation and the power from int KnockbackAmount. Get's called by TakeDamage automatically.

Balance Tweaks

  • Antagonized Dyson Sphere rebalance.
    • Every so often the Dyson Antagonizer will level up and increase the income of the Antagonized Dyson Sphere. To compensate, the initial strength of the Antagonized Dyson Sphere will be weaker
    • Prompted by a discussion with Democracy
  • Increase the Macrophage's base income
    • Thanks to Democracy for the comments
  • Instigators are now allied to the player in Friendly AI mode
  • Tweak the anti-minor-faction wave code to make sure the waves are all at a minimum size. Also increase the anti-minor-faction waves against the Nanocaust
    • Thanks to Oval for pointing some more code paths out
  • Keep the Main Menu Music in the Game Lobby; don't switch to 'in-game' music till you really start the game
    • Thanks to Puffin for the request
  • On difficulty >= 7, the AI will start dumping most of its budget into the Hunter Fleet when you are attacking the AI Overlord or an adjacent planet
    • The feeling I get is that the actual AI Overlord combat isn't as exciting as it could be, so hopefully this will be more interesting.

Mines

  • Increased the count of Mine types from 1 minimum, 2 maximum, to 2 minimum, 3 maximum in "Minelayer" Fleet Designs.
  • Increased the count of Mines in "Minelayer" and "OtherDefenseFocus" Fleet Designs.
  • Logistical Command Stations now have 20 Paralysis Mines instead of 10 normal Mines.
    • Existing Stations in save games will still have their old Mines in addition.
  • Area Mine damage 20,000 -> 2,000, hits maximum of 10 targets instead of spreading amongst everything in range.
    • Differentiates it from normal Mines.
  • Paralysis Mine hits maximum of 10 targets instead of spreading amongst everything in range.
    • Stops it from paralysing an absurd amount of ships.
  • Area and Paralysis Mine explosion radius 500 -> 1,000.
    • These mines had a tendency to detonate on the first target that came in range, and not hit much around that. This should hopefully let them get more out of each detonation.
  • Paralysis Mine paralysis time 8s -> 12s.

Strikecraft

  • Parasite damage 20 -> 60, reload time 6s -> 4s.
  • Paralysers now have the correct target evaluator and should be better at actually paralysing.
  • Sentinel Gunboat cost_for_ai_to_purchase increased 25%.

General

  • Ion Cannons and Orbital Mass Drivers should now be shot at automatically, if nothing else is really around as a target.
    • Thanks to Democracy for reporting.
  • Doubled the health of Logistical and Military Command Stations.
  • Transport Flagship health increased 25%.
  • Guard Post metal cost increased 10x.
    • Solely so Metabolisation grants you more metal from them.
  • Reduced cost of "Spire Core" Tech.

Translocation

  • Ark One now uses the Translocation mechanic.
    • Knockback 2000, increases by 500 each Mark.
  • Military Command Stations now uses the Translocation mechanic.
    • Knockback 3000, increases by 750 each Mark.
  • Military Command Station reload time 6s -> 2s, shots per salvo 6 -> 8, damage 1,300 -> 800.
    • Allows it to use Translocation more effectively. Is also a damage upgrade.

Reinforcement

  • Removed the increased turret limit that AI planets with guard posts get.
  • Slight increase to the bonus strike craft a planet can reinforce per guard post, 25% extra --> 30% extra
    • This still lets the AI build up a "wall", but strike craft are different from turrets in that there's more gameplay to them (i.e. they become threat if you outnumber the AI too much)
    • Thanks to the Discord for the talks, Puffin for posting on the bug tracker.

Bugfixes

  • Fixed a bug where factories could produce ships beyond a fleet's cap if you were fast forwarding during construction.
  • Put periods at the end of all the Descriptions of minor factions and map types for consistency
    • Thanks to Ovalcircle for suggesting
  • Probably fixed the bug with marauder outposts causing savegames to break. Have not tested it, but found a definite bug in the code (one variable being serialized twice but deserialized only once) and fixed that, so unless there is also a second bug in this area it should be good to go now.
    • Thanks to DEMOCRACY_DEMOCRACY and BadgerBadger for reporting.
  • Fix a bug where Hunter Fleet budget from Instigator bases wasn't being spent
    • Thanks to Democracy for reporting
  • Fix a bug where normal waves weren't sending
    • Thanks to WeaponMaster for the bug report
  • If you have 0 hacking points and haven't finished the hack, the hack should now fail instead of giving you negative hacking points
    • Thanks to x4000 for the mantis ticket, but I assume someone else originally reported the problem (on Steam?)
  • Paralyzing a ship with a cloaking device no longer gives it full cloaking points once it's unparalyzed again. Particularly infuriating with the Raid starter fleet, the Cursed golem stuns for just enough time to have ships recloak before the next shot fires.
    • Minor downside - If you manage to stun ships with an AoE effect (Nanoswarm is the only ship capable of doing this off the top of my head), it will no longer be briefly unstealthed. Very minor since this situation happening is unreliable at best.
  • Marauder Mark 3 Outposts once again spawn Raiders
    • Thanks to Ovalcircle for the bug report
  • Avoided a bug that would temporarily break save games once the game version rolled around to 1.0
  • Fixed the "Singular Freaky Surprises" map generation item for real this time. Golems should be a common appearance for Golemite AI now, and rare (1 / 1001) for other AI types again.
  • Fix a bug where the AI wasn't seeding its full compliment of Strikecraft on most planets
    • This is a giant buff to the AI's initial defenses

Version 0.861 Strength Of Remains

(Released May 17th, 2019)

  • Added a new PlannedWaveOptions struct that is great for sending specific groups of options to the PlanWave() function without it having a million optional parameters.
    • This also lets us have specific static Create() methods set up that have just the parameters that we want to set, which reduces the chances of bugs via typos or misalignments.

Gameplay Improvements

  • When "Ally to AI" mode is selected, the player gets vision of all planets at the beginning of the game
    • Thanks to Apthorpe for the suggestion.
  • Ships that get unloaded from fleet centerpieces now inherit orders such as wormhole move commands and behaviors such as pursuit mode.

Interface Improvements

  • Turrets and ships that are remains, not claimed yet, crippled, or in the process of being built are now not shown as strength in either galaxy view or local view.
    • Thanks to Nameless Terror and Trillioneyes for noting that this made it hard for players to judge at a glance when the AI is outnumbering them.
  • Cross planet waves now display the source planet of the wave to match the other wave types.
  • Improved the feel of dropdowns by making it so that you can click the dropdown a second time to hide it, just as you can in most other applications in the world.

Bugfixes

  • Fixed a bug that caused things that produced multiple types of drones (certain AI guard posts, AI drone guardians) to produce only 1 drone at a time and at a reduced rate.
  • Fix a bug where Anti-Player Zombies were also hostile to the AI. Note that this fix only affects newly created game, existing games will still suffer from this bug.
    • Thanks to zeusalmighty for reporting
  • Put in a probable fix to exceptions that could happen inside UpdatePositionAndSize() on the tooltips. This is almost always indicative of some worse problem, but it's worth having this not compounding the problem at least.
    • Thanks to Ovalcircle for the most recent report of this.
  • If there are errors during map generation (sometimes this is "valid", in the case of things like too many factions for the available planets), it now pops up a harmless but hopefully-informative error message log and doesn't just start the game in an invalid state.
    • Long-term obviously we want it to not be in a position to generate an error like this, but realistically modders can do all sorts of things and we need errors to happen gracefully.
    • Have tested this and it works as expected. However, it requires that all errors during mapgen use a new method which is Engine_AIW2.Instance.LogErrorDuringCurrentMapGen() if it would previously have used ArcenDebugging.ArcenDebugLog( Verbosity.ShowAsError ) or equivalent. If there are any remaining cases of the latter, then those would not get caught by this new code.
    • Thanks to OvalCircle for reporting the issue.
  • Previously there was a bug where if you set the number of planets in the lobby, but then just hit Start Game without hitting Generate Map first, it would not actually use the correct number of planets.
    • This was... kinda old, kinda-new. If there isn't enough room to seed whatever factions you have selected, it's now super duper fast to change the number of planets and hit start game and see if it works, etc. Without slowing anything else down in the lobby responsiveness in general.
    • Thanks to OvalCircle for reporting.
  • Fixed a longstanding bug where if you had one faction selected and then changed the faction, the colors would not update properly for them in the lobby.
    • This was not a problem limited to just the colors, and it probably was display-only in terms of problems, and it doesn't solve the issue with the human player colors, but this is still nice to have fixed.
    • Thanks to Ovalcircle for reporting.
  • The various custom data for the individual map types (how many arms on the octopus, etc) now all do a much better job of actually retaining and showing their proper values, and never have a stale view on the interface itself.
    • This was another old and new problem, but is now fixed for both cases.
    • Thanks to hawk and BadgerBadger for the original reports.
  • Fixed a longstanding bug in the TextMeshPro dropdowns where if one was in a sub-panel and opened, then clicking another one to open the other one would not close the first one. It led to much visual confusion.
    • Why exactly this was happening is actually a bit of a mystery, but we just gave the dropdowns some memory of "dropdowns that think they are still open," and those all close themselves when a new dropdown is clicked. Problem solved.
    • Thanks to Dominus Arbitrationis for reporting.
  • Previously, there was an extra custom field definition for the human player colors compared to the other faction colors, and this wasn't really needed now and probably just confused things.
    • So removed and consolidated that, although it didn't fix the sync issues with human player colors not being settable.
  • Integrated revised versions of the Steamworks .so files for linux, and the related files for OSX as well.
    • Thanks to Badger for chasing down what needed to change on Linux; please let us know if it still isn't showing you as logged in properly in the new builds in either of those two OSes, because that would likely mean that something didn't get copied properly in our build scripts.

Version 0.860 The Lobby Ate My Factions??

(Released May 16th, 2019)

  • Fix a bug where Raid Engines could trigger a null reference if set off by the Dark Spire
    • Thanks to Democracy for reporting.
  • In the event that for some reason the game tries to queue a GameCommand with an ExecuteOnFrameNumber of -1 (this seems to happen from time to time during the game and now once in the lobby), it will complain at the time of it trying to queue it, and give a stack trace from there, and not actually do the queuing of it.
    • This should help us figure out when and why these things are occasionally happening. It's probably related to a pooling error of some sort, but it's hard to be sure. If the commands are valid at this point and then later have ExecuteOnFrameNumber of -1 when being read back, then we know we have a different problem entirely and can approach that from another way. Either way we'll start having more info soon on this rare and elusive error.
  • Put in a second place where we now early-assign the ExecuteOnFrameNumber when GameCommands are created. This may then later get reassigned in OnServer_CheckForSendingServerBatchMessageToClients, which is fine, but this should hopefully prevent those rare issues where a command falls through the cracks and has an ExecuteOnFrameNumber of -1 for some reason.
  • Math fixes from WeaponMaster:
    • Fixed claim repairing being way out of wack, causing 500,000 metal cost Arks to be built in less than a second by a single engineer.
    • Also fixed self construction metal flow healing, metal now heals for a ratio of hp:metal like claim and repair flows now.
    • Also made it so self construction metal flows (and the assist construction flows helping it) heal shield too.
    • Note: it's possible that things are now wildly too expensive to claim, now that you actually have to pay the metal for them to claim them. If that's the case, please let us (Puffin?) know, and we'll adjust their claim costs.

More Lobby Fixes

  • Improved the lobby error messaging when it can't find a custom field for a map type so that it now says what it was looking for. Helpful for anyone making custom map types.
  • Fixed a bug in the Simple map type where it was trying to look at a setting for the realistic map type (and then not even use it) and thus was throwing an error now that the settings are per-map-type rather than being stored in the global central settings file.
    • Thanks to DEMOCRACY_DEMOCRACY and Mckloshiv for reporting.
  • In the "remove a faction" bit of code, it now throws a cleaner and more informative error if for some reason it's out of range. It doesn't fix the problem, but should help us fix the problem in the future if we don't find it in the meantime.
    • Thanks to Mckloshiv for reporting.
  • The long-range planning cycles (background threads) are no longer run when you're in the lobby.
    • This probably makes next to no difference to anything, but might make a few things slightly faster or even avoid some potential issues in the future.
  • Some changes have been made to make the dropdown selection changes more synchronous (instant) rather than on a slight time delay. This allows for a few things to be controlled a bit better... in theory.
  • Wow, a whole heck of a lot of wrappering and rework has been done on dropdowns to make it more clear when and how data is being set.
    • We were actually still having the same problem with factions getting erased as soon as they were added in the prior build, along with some other known issues like dropdown stuff getting out of sync quickly that we did know about.
    • All of this is traceable back to how the dropdowns handle data updates to themselves, and it's another question of "how did this ever work?" This one was a Chris area, not a Keith one, just in case anyone gets the wrong idea that any of the early code problems were all from one source (far from it).
    • Issues fixed:
      • still couldn't add more factions
      • setup is being triggered when clicking to the factions tab, still, probably because the intermediate data is incorrectly populated
      • opening the MORE button for a factions tab still does a regeneration, probably because the intermediate data is incorrectly populated
    • Remaining known issues:
      • the colors for the player are out of sync between the dropdowns and the visual display area VISUALLY, even though the underlying data is now correct.
      • custom data can be stale when switching map types in the lobby, although it's not causing errors per se.

Version 0.859 Lobby Raid

(Released May 15th, 2019)

Note: We no longer plan to break savegames going forward from here. Looks like that won't be needed, and it would break a bunch of bug reports. So hooray!

Interface Improvements

  • Mobile Support Flagships now show that they are building things in the tooltip
    • Thanks to WeaponMaster for the analysis of this problem
  • The hovertext for Objectives (in the intel tab) for capturing battlestations and flagships now shows the supported units
    • This was annoying me
  • Both of the modal popup types (the OK window and the Yes/No windows) now support scrolling text, aka way more info than before. Before if the text got too long, it would just cut off.
    • This is useful for all sorts of things, such as if we want to have things like header items that you can click (AIP display, for instance) that would give you a readout of a bunch of new details about the state of all the AIs (salvage amounts, reprisal status, whatever else we feel like).
  • There is now a "tall" version of the modal "OK dialog" that is able to tell you info. This is particularly useful for info dumps versus just a quick notice regarding whatever it was going to tell you.
  • Fixed up a variety of fonts that were too small, particularly for dropdowns, in the lobby in recent beta versions.

AI Improvements

  • Allow the Dyson Sphere to free itself if it was reconquered. Otherwise you have to babysit the Dyson Sphere once you free it
    • Note this may cause the AI and Dyson Sphere to fight more often, since the AI is apt to try to recapture it repeatedly. May need further tweaks
  • The AI will now wait until a wave is "strong enough" before sending it, rather than potentially sending very small or empty waves
    • Thanks to Ovalcircle for the bug report
  • Allow the Nanocaust to kill Black Hole Machines, since they were otherwise an excessively effective counter to the Nanocaust
    • Thanks to a number of people for suggesting this, including Mosrael

New Features/Ships

  • Add a "Ally player to AI" option in the game lobby.
    • This prevents you from playing the game normally, and is intended for people who want to play the game in Sandbox mode, watching the AI fight various minor factions, or an AI Civil War (or both)
  • Raid Engines function and are in use again.
  • Like we have had description_appender_dll and description_appender_type for quite some time, we now also have per_second_custom_logic_dll and per_second_custom_logic_type.
    • The former calls void AddToDescriptionBuffer( GameEntity_Squad RelatedEntityOrNull, GameEntityTypeData RelatedEntityTypeData, ArcenDoubleCharacterBuffer Buffer ) on a IGameEntityDescriptionAppender.
    • The new one calls void RunEntitySpecialPerSecondLogic( GameEntity_Squad RelatedEntity, ArcenSimContext Context ) on a IGameEntityPerSecondSpecialLogic.
    • This allows us to have all sorts of crazy AI watcher units, including AI Eyes or whatever else, that run some completely custom logic once per second. It's easy for modders to define, etc, etc.
    • Thanks to Badger for suggesting.

Balance Improvements

  • Don't allow drones to generate salvage
    • Suggested by Democracy
  • Player engineers are no longer able to repair friendly zombie ships.
    • A previous change to make zombies attrition every minute was effectively just a metal sink because they were still able to be repaired.

Bugfixes

  • Fixed a bug where hydra head ships (that spawn from hydras such as Stingray Hydra) weren't properly attritioning or being set to pursuit mode.
    • They will die faster thanks to the attrition working now, but hopefully be more useful as they'll chase enemies automatically.
    • For modders, this can be enabled for any ship by defining self_attritions_X_percent_per_second_if_parent_ship_not_on_planet="X" and adding the tag always_self_attritions="true" to your ship. Doing this for any ship except those spawned from another ship dying is kinda pointless though.
  • Fixed a bug where Factories and Support Fleets were spending less metal than intended when producing more than one type of ship at once.
  • Fix a logic problem with neutral planet hacking which prevented you from being able to Watch-Hack a neutral planet
    • Thanks to trillioneyes for reporting
  • Factories will now only produce strikecraft and frigates for fleet centerpieces that are fully claimed.
  • Thanks to a TextMesh Pro setting to "disable warnings," the builds of the game will no longer complain about missing glyphs in fonts that don't need them.
  • The debug output code for what a GameCommand contains now has its line breaks fixed up so that it's actually legible!
    • Also some options have been put in to make it output a bit more intelligently, ie only saying what it is doing and not all the empty things it isn't doing.

Various Fixes and Changes to Zombie Fleets

  • There is now a defined minimum and maximum amount of zombie ships that get randomly sent out when zombies decide to raid another planet. This is currently set at 30 and 50 respectively.
  • The group of ships that get sent out when deciding to raid a planet is now randomized. Previously the ships that got selected to raid were always the first ones created on the planet, now the group that gets selected is chosen randomly.
  • Zombies that are in the process of going through a wormhole ("Raiding") are left out of patrol/raid logic so they don't get conflicting orders.
  • Planets that have less than 0.05 strength of hostile units on them (basically only a warp gate and command station) are considered not hostile and so zombies will run their patrol/raiding logic.
  • Zombies now correctly lose only 1% of their hp per minute. Previously, ships with high shields were losing much more hp per minute.

Lobby Guts Revamp (Visually No Improvements Yet)

  • Completely redid the inner guts of how the lobby keeps track of changes that you're requesting, and how it then goes about updating and syncing the game and the UI, respectively.
    • It's a lot more responsive-feeling now, although we can get it even better than this. And it also provides a basis for us to be able to make this properly visually better soon.
    • This also fixes a number of problems that have existed where people in multiplayer making changes at the same time would have conflicts and lost data.
    • Essentially this is now doing differentials of changes rather than wholesale copies, and it keeps track of a separate "setup as per the lobby" that only the lobby can touch, and a "long term settings" that the game reads from later on.
  • Fixed up a number of things with the map type sub-controls so that it is now fully modder-friendly, and multiplayer-safe.
    • You can now mod in you own map type sub controls without having to edit the central files (which of course would be overwritten next time there's a release).
  • Made the game way more robust when it comes to having a map set up that doesn't include any factions for whatever reason.
    • It's possible to make this happen in the lobby code if you mess up other things, and it's much easier to just have this be robust so that we can see the real errors.
  • A variety of the map types now have much easier-to-digest names for their options, and all map types now have proper spacing between the words in their names and their options.
  • A new settings option has been added to the Debug section: "Write Lobby Setup Changes To Log"
    • If something strange is going on with the lobby, in multiplayer or otherwise, this is a way for the log to have a variety of data sent about what changes are being requested, and when.
  • New options for writing the full contents of a GameCommand have been added, to get all the details of what's in each list being sent, etc. This is now used a variety of places that can benefit from that extra clarity (all error-reporting-related or otherwise debug stuff).
  • GameCommands have been expanded to allow for a third RelatedString, which is needed by some of the new lobby stuff.
  • Automatically-created controls (such as in dynamic interfaces like the lobby) now can have a string control code sent to them along with the two integer control codes.
    • This again is needed for the lobby, and makes some of the new modder-friendly map stuff possible.
  • Some data during mapgen was previously stored in the Factions object, and others in ConfigurationForFaction in the WorldSetup object, and still others off in settings, etc.
    • The game now properly stores all that data inside the WorldSetup object, so that it can be copied around and separate versions can be read at various times (for display versus for mapgen asynchronously, etc), and so that it plays nice with multiplayer.
  • Mapgen logging now includes a new entry for ControlledByPlayerAccounts_DuringGame, which is now split between Factions (for ingame) and the WorldSetup (for the lobby), as noted in the above note.
  • A ton of debugging data about the state of the WorldSetup objects, and the basic faction data as well, can now be exported via either ToString() or WriteDetailsToStringBuilder().
    • This lets us actually look inside and see what is happening, which is kinda relevant!
  • Fixed a bug with the initial fleet not being serialized properly in the WorldSetup.
  • Added a new setting to the Debug section of the settings menu: "Show Debug Details Button In Lobby"
    • When enabled, a 'Debug Details' button appears in the lobby, which you can click to have it pop up all the relevant information about the current setup from a very low-level debugging style.
  • Some changes Chris has wanted to make for a VERY long time are now in under the hood in the lobby. Basically the game now only does a "partial" generation of the map whenever things change in the lobby, which means that the map generation is now vastly faster than before.
    • But as part of this, it has to go back and do the full generation of the map based on the final data when you actually click Start Game, and it now does that, too. This also has the benefit of being safer in terms of making sure things are ultra consistent with whatever the UI says when the game actually starts.
  • When you are changing things in the lobby that don't change the map topology _as it is visible in the lobby_, such as factions and conducts and faction options, it no longer causes the map to regenerate itself.
    • This feels more responsive by far, and in multiplayer (or if we get any super slow-to-generate maps in the future) it will have an amplified effect.
    • But also... this mysteriously fixes the problem we were having in the last few builds where you couldn't add factions.
  • The game now includes an implementation of DiffLib (https://github.com/lassevk/DiffLib), which it uses to calculate the differences between Setup states in the lobby export at the moment. Though certainly one imagines there could be other uses for this in some sort of other in-engine analysis data in the future, whether by us in some bowels of the UI for looking at enemy data, or something modders cook up.
  • Several lobby fixes, including to where we were setting the local player's color so that it wasn't getting out of sync. For multiplayer lobbies this will later need to be expanded further, but that's a task for later and not a huge deal right now.
  • Known lobby issues:
    • setup is being triggered when clicking to the factions tab, still, probably because the intermediate data is incorrectly populated (and this is not new until the unity upgrade).
    • opening the MORE button for a factions tab still does a regeneration, probably because the intermediate data is incorrectly populated (and this is not new until the unity upgrade).
    • the colors for the player are out of sync between the dropdowns and the visual display area VISUALLY, even though the underlying data is now correct?
    • custom data can be stale when switching map types in the lobby

Version 0.858 Hotfix: The Lobby... Ate My Galaxy?

(Released May 9th, 2019)

  • Fixed the Vanguard Hydra Head benefiting from Heavy Tech instead of Light like their parent unit.
    • Thanks to Ecthelon on Steam for reporting.
  • Fixed a minor bug in the prior version that threw invisible harmless errors while loading the game because it was trying to find the settings for the galaxy map before the settings had been properly loaded.
  • Guardians will now have a chance at spawning with waves. If maxGuardianTypes is larger than 0, a random value between 0 and maxGuardianTypes is chosen as the minGuardianTypes. Random bags of anyGuardians are chosen until the minimum is reached.
    • Right now guardians only get added if the strikecraft fail to completely fill numDifferentShipsToSpawn. This can be changed easily by removing the comparison ( chosenUnitTypes < numDifferentShipsToSpawn ) in both the if statement and the while loop.
  • Fixed a bug introduced in the prior build where if you changed anything in the lobby or even clicked to the factions tab of the lobby, then you'd get control of a ton of planets and be under fire on all of them and probably lose the game instantly as well. Very amusing in small doses, but that's quite enough, thanks, game. ;)
    • Thanks to Ecthelon, WeaponMaster, Gerard, Mosrael, and DEMOCRACY_DEMOCRACY.

Version 0.857 The AI Strikes Back... Hard

(Released May 8th, 2019)

  • The name of the currently playing music track is now shown in the Escape menu, for people like me who can never remember the titles
    • Prompted by music nostalgia from Puffin and Democracy in discord
  • There are now Achievements for winning in Civil War mode
    • Untested, like most of the other Achievements

AI Improvements

  • Hunter Fleets will now be less afraid of distant enemies
  • Hunter Fleets will now consider enemy forces when choosing how to route to a target, so they don't accidentally suicide into a heavily defended planet on the way to somewhere else
  • The AI now has an "overconfidence ratio", where on lower difficulties Threat will overestimate its strength when choosing whether it's strong enough to attack. This makes it more aggressive, but also more likely to lose when it attacks
    • Finding ways to differentiate the AI difficulties is good

AI Civil Wars

  • An AI will only give resource to to its own Hunter and Warden Fleet(s)
  • The AI Civil War now includes Warden and Hunter fleets. Each AI's warden/hunter is now hostile to other AIs and other Hunter/Warden Fleets.

AI Homeworld Battle Changes

  • If an AI homeworld is attacked:
    • AI Threat ships on the homeworld will fight to the death
    • Ships Guarding planets near to the homeworld will become Threat. The higher the difficulty the more planets will be turned to Threat.
    • Threat ships will converge on the homeworld. Threat already waiting against a strong target will just join the Hunter fleet
    • That AI's Hunter and Warden Fleets will immediately converge on the homeworld
  • Thanks to a number of people for noticing the AI homeworld battles could be dull, including Nameless Terror from Steam. Thanks to StarKelp for a helpful save game to let me test this.

Changes to AI Reinforcement

  • Fixed a bug where strikecraft were being counted as turrets when loaded in a guard post, limiting the amount of turrets the AI could rebuild
  • Fixed a bug where the strikecraft currently on an AI planet were calculated incorrectly, allowing the AI to infinitely reinforce strikecraft if it never built guardians
  • Fixed a bug where strikecraft inside the AI Command Center were not being counted as guard strength for reinforcement
    • These bug fixes improve more defensive AI types like Turtle, as these two issues combined usually meant that the AI could never reinforce strikecraft or turrets
  • The AI can now reinforce an extra 25% strikecraft and Turrets per living guardpost on alerted planets
    • AI planets are alerted when there is a human command center adjacent to them
    • Destroying guardposts on planets next to human planets is now much more important, as they can reinforce to be much stronger than they started out as if left untouched
  • These are large changes that are mostly untested, let us know if this ends up making the game too hard or frustrating

New Settings Options For Galaxy Map Visuals

  • Added a new Galaxy Camera setting: Extra Background Hexagon Intensity
    • If you would like the background to be more stylized hexagons, then you can turn this up.
    • Nobody was really asking for this, but Chris had mixed feelings about his defaults and so figured why not.
  • The previous amount of bloom on the galaxy map was a bit on the high side, with an intensity of 2.06. That has been reduced to a new default of 1.4.
    • However, a new setting allows you to configure it between 0.4 and 4, which are two fairly extreme ends of it.
    • New galaxy camera setting: Bloom Intensity
      • How glowy would you like the galaxy map to appear? More looks more computer-screeny, but can be distracting depending on your contrast settings on your monitor.
    • Thanks to Badger and danny for suggesting.

New Debug Commands

  • Add a new Debug command to decrease AIP
  • Add a new Debug command to kill all AI units and structures on the currently viewed planet

Balance Tweaks

When a flagship of yours gets crippled...

  • Having a Flagship crippled by the AI now gives the AI a nice burst of Salvage, enabling them to power up reprisal waves. This is intended as a penalty for losing Flagships.
    • Different flagship types generate different amount of salvage. Officer flagships generate more than Support or Transport, for example. The Regenerator Golem will generate much less salvage than other flagships
    • The AI will generate less salvage if it cripples a flagship on a neutral planet (but still some)
      • All the tunables are in XML for this

When you don't have enough energy...

  • Claimables that would cost you more energy than you have available now can't be claimed, and it shows that in their tooltip.
    • Previously it could just claim stuff and throw you into negative energy.
    • This is completely untested. Thanks to DEMOCRACY_DEMOCRACY for suggesting.
  • Similarly, if you don't have enough spare energy to create something out of a factory (strikecraft, frigates, whatever) then it will only build up to 100% and then will stop and not actually emerge.
    • Same with drone production; it won't produce the next drone, but just will stick at 100%.
    • In both cases the interface will also show "ENERGY SHORTAGE" next to whatever the unit is.
    • This is completely untested. Thanks to DEMOCRACY_DEMOCRACY for suggesting.
  • Any units that are currently trying to self-construct, and you don't have enough energy for them (or negative energy in general) will completely stop constructing (unless they either don't consume energy or produce it).
    • In the relevant cases the interface will also show "ENERGY SHORTAGE" next to whatever the unit is.
    • Thanks to DEMOCRACY_DEMOCRACY for suggesting.

AI Overlord Phase 2

  • Now uses a Plasma Overdriver in place of the old Plasma Torpedo, affecting everything in a large radius.
  • Doubled health.
  • Parasite Bolt damage 4,000 -> 6,000, shot count 40 -> 60.
  • Fusion Bomb damage 30,000 -> 50,000, added 2x bonus multiplier vs targets of mass >= 5.

Guardians

  • Increased count of Guardians on AI planets.
  • Increased bonus multipliers of Guardians.
  • Stealth Guardian Fusion Bomb Bypass 0.6 -> 0.9.
  • Stealth Guardian shot count 1 -> 5.
  • Concussion Guardian damage 350 -> 450.
  • Spider Guardian range 8,000 -> 10,100.
  • Gravity Guardian damage 1,000 -> 300, shot count 1 -> 10.
  • Tripled health of Temperamental Guardians.
  • Tripled health of Fragmenting Guardians.
  • Health increased 50% for Tantruming Guardians.
  • Tantruming Guardian shot count 1 -> 5.
  • Fragmenting Guardian Shard health increased 50%, damage 800 -> 1,600.
  • Nucleophilic Guardian damage 1,200 -> 1,500.
  • Grenade Launcher Guardian damage 220 -> 330.
  • Fortified Tesla Guardians now have a bonus multiplier vs albedo >= 0.7.
  • Plasma Guardian damage 3,500 -> 5,000.

Dire Guardians

  • Greatly increased bonus multipliers of Dire Guardians.
  • Increased health of Pike, Nucleophilic and Grenade Launcher Dire Guardians to match the others.
  • Doubled health of all Dire Guardians, excluding Forcefield - still increased.
  • Dire Concussion Guardian shot count 5 -> 12.
  • Dire Plasma Guardian explosion size 300 -> 600.
  • Dire Pike Guardian damage 6,000 -> 4,000, shot count 3 -> 20.
  • Dire Nucleophilic Guardian shot count 3 -> 6.
  • Dire Grenade Launcher Guardian damage 1,300 -> 1,600.
  • AI Hunter / Killer shields 1,000,000 -> 2,000,000, Fusion Bomb shot count 25 -> 35.
  • Added a rare chance for an AI Hunter / Killer to be chosen in place of a Dire Guardian.
    • This thing spawns as Mark 5 if it does, so be really careful.

Guard Posts

  • Increased bonus multipliers of Guard Posts.
  • Doubled health of all Guard Posts excluding Forcefield.
  • Increased health by 25% of Forcefield Guard Posts.
  • Pike Guard Post shot count 5 -> 10, reload time 4s -> 3s, range 8,000 -> 10,100.
  • Sabot Guard Posts increase their bonus multiplier with Mark.
  • Concussion Guard Post shot count 5 -> 10.
  • MLRS Guard Post damage 480 -> 240, shot count 8 -> 40.
  • Nucleophilic Guard Post damage 1600 -> 2,200.
  • Forcefield Guard Post damage 600 -> 2,000.
  • Stealth Guard Post damage 600 -> 2,000.
  • Added a rare chance for non-Swarmer AI planets to have a Swarmer Guard Post.
  • Increased frequency a bit of Forcefield Guard Posts (as well as Forcefield Generators).

Dire Guard Posts

  • Greatly increased bonus multipliers of Dire Guard Posts.
  • Doubled health of all Dire Guard Posts.
  • Dire Sabot Guard Post damage 3,000 -> 6,000.
  • Dire Tesla Guard Post damage 4,000 -> 6,000.
  • Dire Concussion Guard Post shot count 6 -> 12.
  • Dire Parasite Guard Post damage 6,000 -> 3,000, shot count 12 -> 30.
  • Dire Spider Guard Post damage 4,000 -> 2,000, shot count 12 -> 40.
  • Dire Nucleophilic Guard Post damage 8,000 -> 10,000, shot count 3 -> 6, range 8,000 -> 12,000.
  • Dire Gravity Guard Post damage 12,500 -> 2,000, reload time 1s -> 2s, shot count 1 -> 40.
  • Dire Shredder Guard Post range 8,000 -> 12,000.
  • Dire Tethuida Guard Post range 8,000 -> 12,000.

Drones

  • Dire Shredder Drone health 5,000 -> 10,000, damage 4,000 -> 8,000, count 20 -> 40.
  • Dire Tethuida Drone health 5,000 -> 10,000, count 20 -> 40.

Centerpieces

  • Doubled health of all Golems (Player and AI).
  • Increased health of all Arks.
  • Health increased 50% of all Spire Frigates.
  • Doubled health of all Combat Factories.
  • Increased shields by 25% of all Citadels.

Strikecraft

  • Inhibiting Tesla Corvette shields 3,000 -> 5,000.
  • Molotov explosion size 500 -> 650.
  • Eyebot base damage multiplier 3x -> 6x.

Science, Tech and Hacking

  • Reduced Upgrade Costs of Battlestations and Citadels a bit.
  • Starting Science 20,000 -> 15,000.
  • Science gained from Spire Archive Extraction 5,000 -> 8,000.
  • Increased secondary response strength of some AI hacks.

General

  • Reduced the cap multipliers on Transport Flagships a bit.

Bugfixes

  • Fixed a tooltip typo that incorrectly identified the StrikeCraft version of the Intragalactic Coordinator as increasing the turret cap.
  • Only explore new planets when a Player kills an command station. Otherwise the Nanocaust and Civil War were giving tons of free vision
  • Economic Command Stations can now build multiple energy collectors
    • Thanks to weapon master for reporting, and puffin and ptarth for debugging assistance
  • Fixed a bug causing fleet centerpieces to not cost any metal to claim.
    • Thanks to Democracy for the report.
  • Fixed a bug with the metal cost to claim capturables, this was causing most capturable things to cost less metal than intended.
  • Fix a bug where the Hunter Fleet was refusing to enter defended planets
  • Fixed a bug in the internal drone construction logic that was previously present in the 0.850+ branch, but which was really only rearing its head on the new internal versions. Curious.
  • Fixed a bug with the seeding of SingularFreakySurprises where the chance for a golem to appear was being rolled once per galaxy instead of once per planet.
    • No more galaxies full of golems.

Trying and Failing To Fix The Lobby

  • The way that the lobby regenerates the galaxy map is now slightly less direct. Rather than just directly updating things every time any dropdown value changed or similar, it now queues up those changes cumulatively and then applies them all 100ms after the last change.
    • This is because we can have situations where one dropdown changes, causing others to change, and that was causing repeat and often incomplete commands to be sent.
    • This was what we thought the disappearing-factions bug from the last few builds was, and we assumed it had to do with the dropdowns handling onValueChanged differently. That may be the case, but we can't really see how that's the case from a code review.
    • So this does seem to help with not missing things like some of the smaller secondary data for factions for instance, but it wasn't the complete solution we had hoped it would be.
  • In the lobby, put in some defensive code to prevent certain errors when the game is trying to show a row for a faction that is out of bounds.
    • We get a lot more info about what went wrong when this is happening, at least. These errors are also no longer silent, but instead pop up a good error message with a useful stack trace.
  • Split the internal CodeDirectiveTag int on the ArcenUI_CreateElementDirective struct into CodeDirectiveTag1 int and CodeDirectiveTag2 int.
    • The purpose of this is so that we no longer have to do any crazy bitshifting to get the data out of a single integer for the faction index and field index in the lobby. This approach was mathematically clever, but had legibility issues at bare minimum.
    • Various parts of the lobby were incorrectly reading the data back as just faction index with no bitshifting going on, and maybe that was correct for those fields (??), but we're not really sure and that lack of sureness is not worth a tiny bit smaller struct.
    • This may or may not fix some bugs, but at least things are clearer.
  • Did NOT manage to fix the lobby with all these various changes.
    • But have managed to make ourselves wonder how it ever functioned at all.
    • Simply opening the MORE options next to a faction will change what is available in there, fun fact. That broke as heck, and probably isn't completely new.
    • Going through all this is, on the plus side, giving us a vastly better idea of how we want to rearchitect the lobby from a technical standpoint while keeping as much of what is there as possible. It looks like the "new lobby" is going to be a feature for 0.900-era AI War 2, simply because of all this.

Version 0.856 Clever Girl

(Released May 4th, 2019)

  • Ships that are in the process of loading into the fleet centerpiece no longer collide with other ships when near the centerpiece; faster loading with less micromanaging required.
  • Beam weapons now optionally support maximum_number_of_targets_hit_per_shot in the XML.
    • If the max is defined, ships hit past the maximum split the damage of the maximum equally between all ships.
      • As an example, if you had a 10,000 damage beam with a max of 2 targets and it hit 4 targets, each target would take 5,000 damage only ( 2 max / 4 hit ).
  • Tweak the text for some hacks to fit the text in boxes.
    • Thanks to trillioneyes for reporting
  • Intra-Galactic Coordinators now cost AIP when the AI kills them
    • Thanks to Nameless Terror on steam for suggesting
  • The AI is now allowed to send waves against Unowned but defended planets in Civil War mode. The AI also gets buffs to its "anti-other-AI-planet" waves in civil war mode.
    • Thanks to Ovalcircle and Democracy
  • Dyson Antagonizers in the galaxy now have an Objective to destroy them
  • Changed the way science hacking scales to be more intuitive
    • Thanks to Democracy for complaining about it.
  • When transferring units between factions, clear any previous orders and set the units to be in Attacker mode. This was causing issues when transferring units to the Hunter Fleet
  • Fix a bug where having crippled flagships on a planet could sometimes cause hacks to fail
    • Someone complained about this but I don't remember who it was.

Improved AI Attack Coordination

  • When the AI chooses targets for the Threat Fleet, it has a mild preference for attacking planets with critical player structures like Zenith Power/Metal Generators and Intra-Galactic Coordinators
    • The tunables for how strong that preference is (as opposed to going for more poorly defended targets) is an XML tunable per AI type
  • The AI now takes into account incoming wave strength when considering whether it is strong enough to attack a target when a wave is < 20 seconds out
    • This should allow Threat/Hunter ships to coordinate attacks with incoming waves when appropriate
  • When calculating whether a planet is a good target, the Hunter/Warden fleets now also include allied ships on their way to the target, as well as those currently at the target.
    • More coordination improvement code

Balance Tweaks

  • Sentinel Gunboats should now actually decloak.
    • Thanks to Mac for finding this.
  • Gravity effects cannot reduce a units speed below 20%, up from 5%.
    • This is to stop being able to stack Gravity and effectively replicate Tractor Beams.
  • Target priority lowered for Tachyon Sentinels and Arrays.
    • Thanks to DEMOCRACY for reporting the bullet magnets these were.
  • Decreased the time for AI Threat to join the Hunter Fleet, from 15 minutes at all difficulties, to starting at 10 on Diff 1, lowering by 1 for each Diff higher, maxing out at 3 minutes on Diff 8, 9 and 10.

Version 0.855 Galactic Markings

(Released April 30th, 2019)

  • Improve the hovertext for waves. The hovertext now shows the Target planet name in the colour of the planet's owner, and the planet with the warp gate in the colour of the faction sending the wave.
    • Thanks to Ptarth for making sure I did this right

Hacking Improvements And Science from Neutral Planets

  • Add a new hacking mechanism to allow extracting Science from neutral planets. It currently costs 5 AIP as well as a few hacking points. Performing this hack will cause the AI to launch a wave at you.
    • The AIP is part of the "AIP for taking a planet". So if you killed the command station there's actually no AIP cost (since you paid it when killing the command station). If another faction destroyed the command station then it will cost 5 AIP, but if you eventually capture the planet it will only cost 15 AIP when you capture instead of 20.
    • Note that this allows for you to collect Science much more quickly than normal by killing the command station and then doing this hack before capturing the planet, at the cost of some hacking points and the AI getting a bonus attack at you.
    • Thanks to Ecthelon, DD the GerbilStrangler, Nameless Terror, themouthofsauron, x4000, Puffin and Apthorpe for useful discussion
  • If a Flagship becomes crippled mid-hack, the hack fails. Also Crippled Flagships are no longer allowed to start hacks.

Galaxy Map Visuals

  • The galaxy map's bloom settings have been updated a huge amount, giving the entire scene a bit of a computer-screen glowy vibe.
    • The blue hexes in the background have been adjusted and the scanline effect is now less noticeable, as part of this, though. It was just a bit too much visual distraction.
  • All of the roman numerals for mark levels have been switched to a more thematic sci-fi type font.
  • All of the graphics for planets on the galaxy map are now more consistent in size, and generally smaller, as is the selection radius around the one you're viewing right now.
  • The positioning of all the font stuff on the galaxy map has been changed around a lot, to be tighter around the planets but no longer ever overlapping with the overlarge planet icons (that no longer are overlarge).
    • In general this keeps things more compact and hopefully also more legible.
  • The little icons for "important ships at planets" are also now a bit smaller and more compactly-placed under the planet on the galaxy map.
    • They should still be plenty legible, but no longer oversized compared to some of the planet stuff they are essentially orbiting.
  • As you zoom out on the galaxy map, the planets (and their text and icons) no longer stay quite as large as they previously did, instead shrinking down more.
    • On most screens this should remain legible, while at the same time keeping them from overlapping.
    • This was simply changing galaxyplanet_scale_up_factor="0.001" to galaxyplanet_scale_up_factor="0.0007" in the GameData\Configuration\ExternalVisualConstants\CMP_VisualConstants.xml file.
  • The amount of time the icons and text now stay next to planets on the galaxy map have also been changed dramatically, so that they remain around until almost the last possible amount of zoom (and it's kinda useful having a super far zoom that gets rid of that clutter, at least at first thought).
    • This was simply changing galaxyplanet_hide_side_text_starts_at_y="1500" to galaxyplanet_hide_side_text_starts_at_y="2000" and galaxyplanet_hide_special_entities_starts_at_y="1300" to galaxyplanet_hide_special_entities_starts_at_y="1700" in the GameData\Configuration\ExternalConstants\KDL_VanillaConstants.xml file.
    • Particularly with how it's easier to see at a glance what the mark levels of planets are, and if you have current intel on them, this final-decluttered stage seems particularly useful. If you disagree, there are actually sliders in the options for changing it so that it declutters sooner or later.

Balance Tweaks

  • Add a mechanic to allow anti-AI zombies to self-attrition over time. Currently set to 1% self-attrition per minute. This isn't very fast, and your engineers will repair them, but it's something?
    • Done after seeing some games where HeartHunter seems to have zombified the entire Hunter Fleet
  • Reduced the power of Mark 5, and greatly reduced the power of Mark 6 and 7.
  • Battlestations and Citadels should have more Turrets.
  • Lowered count of Beam Cannons and Plasma Turrets in "Monochrome Turret" designs.
  • Lowered count of Frigates in "Frigates With Support" designs.
  • Doubled Mass Driver damage.
  • Botnet Golem shots per salvo 80 -> 50.
  • Player Botnet Golem damage 750 -> 500.
  • Changed the scaling of most Tech Upgrade costs to somewhat match what they used to be before Fleets.
    • Some are cheaper, some are more expensive, and some just have the Marks evened out.
    • This is something that will probably always be a bit off somewhere, but hopefully this is an improvement.
  • Plasma Turret range 10,100 -> 15,000.
  • Beam Cannon and Heavy Beam Guardian range 15,000 -> 12,000, reload time 4s -> 6s.
  • Allow far more Anti-AI zombies to leave their current planet whenever that event occurs.
  • Mugger does a bit more damage.
  • Tractor Array range 2800 -> 4200.
  • Doubled count of Tractor Arrays in almost every player-available source.
  • Forcefield Generator shields 250,000 -> 350,000.
  • AI Forcefield Generator shields 150,000 -> 500,000.
    • Extreme, but these are apparently tiny roadbumps currently. They're rare, so this shouldn't be obnoxious.
  • Forcefield Generator size increased.
  • Shield Guard Post shields 90,000 -> 150,000.
  • Focused Gravity Generators and Gravity Guardians now only slow things below engine_gx 14, rather than 15.
    • There were a few units that should've been resistant to this but weren't due to a minor error.
  • Engineering Battlestations will now always have Minefields as well as Engineers, instead of just Engineers.

Bugfixes

  • Fix some issues with the science hovertext, where it was still listing planets even after you'd taken all their science.
  • Handle the case where a player might have Overspent building a unit. This can happen if a player was building a unit after spending X metal, saves the game, then changes the metal cost of the unit to < X via XML and reloads the game.
    • Thanks to ptarth for the bug report.
  • Updated the Steamworks integration library that we use (and the Steamworks dll/so/dylib files from Valve) to their latest versions.
    • More details are here: https://github.com/Facepunch/Facepunch.Steamworks
    • On windows, we can confirm that now it actually shows you as being logged in properly, and also lets you see the proper main menu visuals rather than a blank space background.
    • To check on your OS that this is working, please look in the bottom right hand corner of your screen on the main menu and it should say "Logged in as [your username]." If it says "Not logged into Steam" or similar, then achievements won't be working properly for you later on. And in general it's something we'd want to know about.
    • Mostly this is a compatibility thing with the newest version of Unity, so far as we can tell, but we also have some new capabilities that we might flex at some point in the future.
  • Intra-Galactic Coordinators for turrets and strikecraft should now work properly.
    • On any ship, there is now an is_strikecraft="true" flag, and an is_turret="true" flag that you can apply in order to have them be considered strikecraft or turrets for these (and later potentially other) purposes.
    • We didn't use the special_type field because it's possible that these things might be strikecraft or turrets and something else at the same time, and the case of being a strikecraft or being a turret isn't "special" enough to warrant the special_type field usage.
    • Note that it's also possible that some of these will be both is_strikecraft="true" and also have a special_type="Drone". In those cases, it won't give the ship cap bonus regardless of the is_strikecraft="true" being there. So drones don't have to un-set that, in other words.
  • Added a new "Invert Mouse Zoom" setting in the All Cameras section.
    • Normally when you spin the mouse wheel forward, you zoom closer; backwards zooms you away. This lets you flip that functionality. OR, in the case that your hardware or OS is inverted for whatever reason, this lets you correct it to work like everyone else.
    • There is a bug in Unity 2019.1 on linux machines that causes mouse scrolling to be inverted, so this lets us work around that: https://issuetracker.unity3d.com/issues/linux-input-dot-mousescrolldelta-returns-reversed-values-in-linux-player
    • Note that this won't help with inverted scrolling with dropdowns and other scrolling areas, unfortunately.
    • Thanks to Badger for reporting.

Version 0.854 Garbage... Collected!

(Released April 26th, 2019)

  • Known issue: in the bottom right corner of the main menu, it says you're not logged into Steam even though you are, and also if you are logged into Steam the backdrop for the main menu might be just stars instead of the usual colorful thing with ships flying by. We'll be upgrading our Steam integration dlls next build, which should fix that. Hopefully it causes no other issues.
  • Known issue: the intra-galactic coordinators for turrets and strikecraft do nothing right now. We wanted to get this build out asap, since it's beta anyway.

Quality of Life and Interface Improvements

  • Player mobile defensive ships in planetary fleets now start in FRD mode
    • Thanks to WeaponMaster for suggesting
  • Hovertext for incoming wave notifications now colours the target planet name for ease of reading
    • Thanks to ptarth for the suggestion
  • The hovertext for Science in the resource bar now shows the planets science is being extracted from and the amount of science remaining for each.
    • Thanks to Apthorpe for the suggestion

Ship AI Improvements

  • Some improvements to targeting logic from WeaponMaster, where the code was accidentally prioritizing the worst possible targets.
    • Thanks to trillioneyes for the bug report
  • Add some new Zombifying targeting code, where ships with zombifying guns will prefer to attack things they can zombify
    • Thanks to Jonesmz for the suggestion and WeaponMaster for the code

Bugfixes

  • If the top unit of a cloaking Stacked Squad dies, the next ship to spawn inherits its cloak state. So if you've decloaked it, killing the top unit doesn't allow the next unit to recloak.
    • Thanks to Nameless Terror for the bug report
  • Fix some typos in the Experimental: Civil War conduct text
    • Thanks to Apthorpe for reporting
  • Fix typo on Encapsulated map type description
    • Thanks to Apthorpe for reporting
  • Fix a bug where Intra-Galactic Coordinators were increasing the unit cap for Energy Collectors
    • Thanks to weapon master for reporting
  • Add some debugging code to catch a null reference exception in the Warden Fleet Long Range Planning code
    • Thanks to Apthorpe for making us aware of a problem in this area

Balance Tweaks

  • Flagships that are crippled can no longer pick up units for transport. Flagships that were transporting units and become crippled now unload all their units immediately. This fixes a few ways players could abuse the Crippled mechanic.
    • Thanks to Puffin for the bug report
  • Split Intra-Galactic Coordinators abilities. Instead of buffing all ship caps, there are now three, one for each of Turrets, Frigates and Strike Craft. Note that each Coordinator now gives a bigger buff.
    • Note that this doesn't work for strikecraft and turrets yet in the current build, we just didn't have time.
  • Mobile Fleet Centerpieces should now all Rebuild Remains.
    • Thanks to Apthorpe for reporting confusion in this area.
  • "Light" and "Heavy" Tech Upgrades cost more at higher levels.
  • "Disruptive" Tech Upgrade costs slightly more at all levels.
  • Battlestation, Citadel and Ark Tech Upgrade costs reduced.
  • "Spire Core" Tech Upgrade cost reduced a bit.
  • Siege Frigate reload time 9s -> 12s, damage 25,000 -> 20,000.
  • Tamed Macrophage metal cost increased to 2 million, energy consumption increased to 25,000.
    • Thanks to Apthorpe for reporting.
  • Scrubbed Abomination metal cost increased to 350k.
  • Muggers and Brawlers now cost their proper amount of metal - 300k - instead of 3 million...
    • Muggers sure lived up to their name.
    • Thanks to Badger for reporting this!

AI Threat Tweaks

  • Thanks to ptarth for a great save game that led to all these changes
  • The AI now has a per-AI Type tunable, RatioOfFearOfRemoteEnemies, which informs how seriously the AI takes into account your forces on planets near the planet it is attacking. This reduces the AI's tendency to be terrified of nearby large player/nanocaust forces.
  • The AI is now capable of having Threat that it uses only against minor factions. There was a longstanding bug preventing this from working correctly. This threat is "Dumber" then general purpose (aka "anti-player") threat.
    • Treat threat specifically against a player as "general purpose"
  • Improve the way the AI handles Threat adjacent to the player home planet.
    • If the Threat is Waiting against your home planet (since you have fortified it too heavily to attack) and there are much easier targets, it will prefer to take your other planets out first rather than just building up a giant fleetball.
  • Some improvements to units keeping track of the fact that they are Threat. Failing to do this was confusing the AI's Strength Counting, leading to the AI believing it was weaker than it should have been
    • When Threat gets an order to attack another planet, make sure to stay in Threat behaviour.
    • Fix a bug where Retreating AI ships would sometimes lose track of the fact that they should have Threat behaviour.
    • Copy Orders when splitting a stack (via the Split GameCommand or when the top unit in the stack dies) to preserve Threat behaviour.
  • Also improve debug hover tooltip for squad orders/Threat behaviour and improve some code commenting/readability

Unity Engine Upgrade (To 2019.1 - Now With Incremental Garbage Collection!)

  • Upgraded the game to Unity 2019.1.0f2! The prior version was on 2018.2.0 or something along those lines, so this is a big jump.
    • The really big improvement is time-sliced garbage collection: https://blogs.unity3d.com/2018/11/26/feature-preview-incremental-garbage-collection/
    • This also has numerous bugfixes, and lets us upgrade from a VERY old version of TextMeshPro to the newest version, which in turn fixes a variety of bugs relating to text, blurry text, textboxes, etc.
      • That said, as part of this, we knew this was going to happen, but it breaks ALL the references to any sort of text-based thing inside of any of our unity projects.
      • But we kind of needed to go ahead and have this done before we started in on a bunch more UI updates or else it was just going to be creating even more work for ourselves in the future.
    • There are also a variety of stability improvements to the unity engine in general, and a few performance improvements. I think that Linux machines will see the biggest boost.
      • There are some new capabilities that we can in theory use in the future, too, and nested prefabs are an amazing thing for sure. But we're not really needing those bits in this specific project right at the moment.
    • Oh and this does upgrade us to the latest version of the post processing stack v2, as well, which means probably better performance and some edge bugfixes for some folks in that area, too.
  • Okay, so we've been using the mcs.exe compiler for the last two years, and it turns out that doesn't support the newer versions of C#. It would have been nice if that had been more clear.
    • Instead, when we were updating our TextMeshPro component or a few other things -- or trying to, anyway -- we would instead get mysterious "System.MissingMethodException: Method not found: "Void System.Array.Reverse(!!0[])" compilation errors. Good luck googling that, almost nobody has that.
    • The solution is to STOP USING MCS.EXE, and instead use csc.exe. That's the new Roslyn compiler that Micrsoft created and unity is using for the newer C# 6.0+ features.
      • The !fun! part about that is that all the syntax is different, and also it requires references to... a whole bunch of dlls that are the "reference dlls" instead of the "runtime ones."
      • If you ever find yourself referencing a dll called System.Private.CoreLib.dll, or anything like that, STOP WHAT YOU ARE DOING and try a different dll.
        • Even though the compiler just told you that what you need is in that dll, it's actually lying.
        • Actually what you need is in... good luck figuring that out!... but probably it's in the REFERENCE version of System.Core.dll or similar. It has nothing to do with "netcoreapp" or "netstandard," unlike the few non-unity-related references to this on the internet would have you believe. That's unrelated to unity, and is just a fun thing on some web servers and various other software.
        • What the heck is a "reference dll" in terms of what the compiler needs? Well, it's a fuller version than is used at runtime, I suppose. I haven't explicitly seen that said anywhere, but that seems to be the general feeling I'm getting. Why they needed this split I'm not sure, but I'm guessing different compiler flags or perhaps the ability to have different per-platform versions. Something like that.
        • Where do you find those reference dlls?? Ha! Good luck with that. Some of them seem to be in the Roslyn compiler folder... except not really, some of them have way too small of sizes. Others are almost certainly in your [UnityInstallLocation]\Editor\Data\Managed\UnityEngine folder, but there again it's not perfect.
          • Generally you're going to find yourself searching around inside the unity install folder, and you might even find yourself (if you're on windows) searching around inside C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\ or whatever your equivalent is. Nicely packaged for you? NO.
    • So that explains one of the big mysteries that Keith and I have been scratching our heads on for a couple of years now.
      • But even with that "solved," I couldn't get all of the aspects of LINQ working, and some of our third-party networking code uses LINQ, so I moved that into an external dll that will get loaded at runtime. That's more efficient anyway, but annoyingly indirect.
      • All of the network code has been open-sourced by the original authors anyhow, so that actually will work out extra well for us when we get to that point. But in the short term it's another pain in the rear we didn't need.
  • One bonus of all this upgrading of unity-stuff is that the editor is no longer complaining about our external dlls being something that will crash the editor and so something they refuse to load. That's... always a plus. And is related to the whole compiler saga.
  • Okay, nested prefabs from the latest versions of unity are actually indeed insanely useful and we're starting to use those more than we otherwise might have.

Complete Overhaul Of All Fonts

  • ALL of the fonts in the game have been reworked (in terms of how they are imported into TextMeshPro and thus how they look in general).
    • And a bunch of new fonts have been added to the game as options for us to use in various contexts.
    • And we've completely redone what fonts we are using in almost all contexts as it is.
    • There was a lot of complaining about the fonts not feeling properly militaristic, or otherwise being non-thematic, and hopefully this helps.
  • The background story is again its own window and scrolls rather than is paginated, but this time is a lot more condensed, uses an improved version of the more-recent rewritten version, and uses strategic coloration to make it easier to read quickly.
  • The little notification icon/panels at the top of the screen now show up with a new font (as with most other parts of the game), but this is a particularly good font for condensed/confined places. It should let you read more things without them trailing off too ellipses, while it also not looking tacky in terms of how it's crammed in.
    • Also, the TextMeshPro upgrade itself seems to do a better job of choosing when to go to ellipsis instead of just drawing the raw text of whatever it is. So some of the planet names that were drawing ellipses very much too soon now won't.
  • As an aside, it's quite possible that the following issues are present somewhere in the game now, and we'd love to know about it:
    • Some sort of text not wrapping properly or being outright invisible, or cut off.
    • Some sort of text section making it impossible to click something near it, or picking up clicks from way further away than it should have.
    • Some sort of text section having the wrong font, or being misaligned in a subtle or not-subtle way.
    • We tried to correct all these that we could find, but bear in mind that this was a couple of dozen interfaces that we had to edit BY HAND for this version, so we probably missed something.
    • Honestly this was another reason we did this now, during the beta period, versus during a non-beta time. Thanks for being our guinea pigs to all the testers helping on this!
  • Given that we're changing so many of the fonts, and may choose to do so even more as feedback rolls in, we've now codified the in-code font-sizing a bit in a new FontSizes class.
    • Essentially size 12pt in font A might be waaaay larger or smaller than 12pt in font B. So we needed a way to normalize the offsets from the defaults of whatever we decide makes sense with a given font.

Various Changes to our Post Processing Stack

  • Oh, I'm sorry, did we say we were going to be using the new unity Post Processing Stack V2? Blah, that really doesn't play nice with what we wanted to do.
    • Instead we're now using Beautify again, stripped down into performance mode but using it for vingnetting and tonemapping. We continue to use amplify bloom for the bloom effects, because messing with that again would be... insanely time consuming.
    • Overall this does mean there's a subtle shift to the look of the game yet again -- and, wait, no we're not using that now, either. Sigh. We'll figure out the tonemapping at some point, but frankly our general lighting is doing the heavy lifting on its own.

Splitting Some Network Code Off Into Its Own Area

  • A bunch of the networking code has been offloaded into its own dll now, which we're able to more easily update as needed.
    • This actually makes our iteration time on that sort of code faster in the future.
    • In the process of getting this working, we managed to waste about two hours trying to figure out why the entire game was broken (and it was a one-liner typo). Fun!

Version 0.853 An Officer And A Bunch Of Fleets

(Released April 22nd, 2019)

  • Only the offensive (strike and officer) type of fleets are now auto-assigned numbered hotkeys.
    • If people want to manually assign hotkeys differently in the future, they can (when that interface is in place), but this really is the most likely use case most of the time.
    • Thanks to trillioneyes for suggesting.
  • Command stations can once again die to remains.
    • This means that if you have a battlestation or a citadel on the planet, then they can rebuild the command station for you automatically just like remains rebuilders would have done once upon a time. Yay automation!
    • Thanks to trillioneyes, Badger, and Nameless Terror for suggesting.

Ability To Scout With Nanites Properly Works (And Related Visual Effects)

  • Unlike all the other versions since 0.850, you can now click over to planets that you have never explored.
    • This lets you actually use the Explore With Nanites hack, which is kiiiinda important, honestly. Or at least it's important to a lot of people, depending on playstyle.
    • Thanks to RocketAssistedPuffin and others for suggesting.
  • The visual effect for viewing a planet where you have stale intel (but have seen it before) was before a bit confusing and a bit much.
    • Much as Chris liked the matrix-y effect, that has been ditched and things are a lot more Factorio-like in terms of just being darkened and grainy.
    • The effect is subtle enough not to be irritating, but to be definitely noticeable. Given the sidebar notes Stale Intel, and things don't look super duper crazy in terms of the visual distortions, hopefully we don't need any bigger onscreen messages to explain what is happening to players.
    • Thanks to Badger, Nameless Terror, and RocketAssistedPuffin for suggesting.
  • There is a NEW visual effect for viewing a planet where you have never even explored before.
    • Through the distortion here you can barely even read the wormhole names, and all you can see are the planet graphics and wormhole graphics (not even metal spots, etc).
    • This one is heavily stylized, but is so TV-like and the sidebar is utterly empty and saying "you have never explored here" and similar that hopefully it's really clear what is going on.
    • This is needed simply because we're allowing players to click into planets that are unexplored so that they can do the nanites hack against them to explore them.

New Background Story

  • A new and brief, paginated story has replaced the longwinded scrolling-based "background story" section of the main menu.
    • The old story was complicated and no longer really accurate to the game. This does mean all those character portraits that Chris created are now completely gone from the game, but such is life. The initial pre-game story is super simple and that's kind of how it always has been. We want the rest of the story, what there is, to be based on what happens during your gameplay.
    • The new story reads:
      • After an 800-year civil war between humans fighting amongst the stars, they finally birthed a force that would end all human wars forever: Artificial Intelligence.
      • Quickly eclipsing the humans in power and taking control of most of their automated forces, the AI nearly wiped the human race from the face of the galaxy. Only scattered pockets remain, hiding amidst the scattered wreckage from the civil war and the AI-led extermination that followed.
      • You are in command of the last substantial remaining human military force. It is so small that the AI is either unaware of it, or just doesn't care.
      • Potentially coincidentally, something outside the galaxy seems to have distracted the AI far more than humans ever did.
      • You must grow your forces, capturing and reactivating fleets from the old wars... but you must be careful not to grow so strong that the eye of the AI turns back toward you.
      • Gain just enough power, capture just enough fleets, take back just enough planets, that you can destroy the massive structures known as 'AI Overlords' and end this new war before the AI is even fully aware it has begun.
      • If you are too greedy, if you make yourself too threatening, if you let the AI realize you might be a true threat... expect us all to lose everything.
      • You must use discretion, avoid distraction and temptation, and wield your forces like a scalpel. Take risks, be bold, but don't try to be a conquerer.

Bugfixes

  • Removed the "build remains rebuilders" intel tab entry, since that is outdated.
    • Thanks to trillioneyes for reporting.
  • The strength of waves that are incoming should now be correctly stated, whereas before it was not since we switched the AI costs and strengths to be two different things.
    • Some internal variables have also been renamed to be more clear.
    • This has not been tested, so it might still be wrong.
    • Thanks to RocketAssistedPuffin and BadgerBadger for reporting.
  • Added a new capturable_can_seed_at_all="false" flag, which is now applied to the Cloaked Ark One and the Agile Cursed Golem.
    • These two entities should no longer seed at all in the galaxy, since they were only ever supposed to be granted via the starting fleet choices anyhow. This won't fix existing savegames, but if you see them in new savegames as something you can capture, please do let us know.
    • Thanks to vinco and RocketAssistedPuffin for reporting.
  • Instigator bases should now seed at more appropriate distances from you.
    • Thanks to WeaponMaster for finding and fixing, and reporting.
  • Fixed a bug where you could not select the starting fleet without it always just defaulting back to classic.
    • Thanks to Badger for the fix, and HeartHunter7 and RocketAssistedPuffin for reporting.
  • Put in some fixes so that if you have invalid/mismatched options (custom or otherwise) in the lobby, it will now complain about them properly and let you know that things are failing.
    • With this we found that the team colors for Instigators and the AntagonizedDysonSphere were not working properly, for instance.
  • Attack warnings in the top bar should now properly show stacked ship counts when you hover over them.
    • Thanks to ptarth for reporting.
  • Some complicated code fixes from WeaponMaster have been put in place to hopefully solve the "multi-shot doesn't function when there's an enemy fortress or other super important item present" issue. Please let us know if this doesn't fix it, or any other strange cases wind up happening, but things seem okay from some limited testing so far.
    • Big thanks to WeaponMaster for the fix, and to KMan_Gladiator for the initial report!
  • Fixed some internal bugs with "last second we saw a planet" that was causing some oddities in the local tab's reporting of what you could see of enemy strength, etc.
  • The local tab summaries now include strength and ships that are inside other ships, aka drones and reinforcements not yet deployed, etc. It's way more accurate now.
  • The tooltips in the local tab were showing the strength values as being 1000x what we show them elsewhere in the UI. Oops, fixed.
    • This bug is old as the game itself, more or less. Wow.
    • Thanks to ptarth for reporting this right as we also discovered it!
  • Fixed a bug where in the post-0.850 builds you could get too much intel about various other planets if you clicked to them in the first 2 seconds of gameplay. This wasn't as big a deal until we changed it so you can click to unexplored planets.
  • The little "battle at a planet" notification cards at the top of the screen now properly show all the ships that are inside other ships, making it so that their ship counts now match that of the sidebar (which is itself only newly correct in this version).
  • Fixed a bug where the incoming wave notifications had strength values that were laughably tiny and wrong. It was only tallying the strength of the first ship of each type, which meant that if there were 1000 ships in a wave, it was 1/1000th the value it should have been.
    • Thanks to RocketAssistedPuffin for reporting.

Strike Fleets vs Officer Fleets

  • There was previously a general "mobile combat" (MobileCombatFleetFlagship) category for fleets. This has now been split in two:
    • MobileOfficerCombatFleetFlagship - this is the style that we had before, where the centerpieces are either an Ark or a Golem. These are big centerpiece fleets that have small and medium craft but also something big and scary at the center.
    • MobileStrikeCombatFleetFlagship - this is new, and is just basically a transport with a "super meh" fusion bomb weapon at the center. Basically this is meant to be the big groups of your ships that are moving around doing the most of the fighting, and the transports are there for... transport! And for ships to pop out of during construction.
  • There are now EVEN MORE fleets seeded around the galaxy for you to find, although many more of them are the "strike" kind of combat fleets instead of the "officer" sort.
    • This gets back to the main playstyle for most people from earlier version of this game and from the base game; having big centerpiece units is great, but let's not overdo it. And for those who don't prefer that kind of gameplay, they can entirely skip it.
  • The number of certain types of Arks and Golems that can be seeded has been drastically reduced from what they were before (those that are part of fleets, not lone ones).
    • You should still see almost as many of these types of fleets as before, but a greater diversity of them. And in general way fewer armored golems, for instance.
    • On really large maps, you will find that you're maybe not getting quite as many of these as you once were, though.
    • The ultimate goal is for these to feel more rare and powerful over time, and a lot of them are seeded a bit further away, now.
  • The "Drone" specialtype has been split into DroneGeneral and DroneFrigate.
    • This lets us better use the multiplied_frigate_ship_cap_for_drones and multiplied_nonfrigate_ship_cap_for_drones xml entries when relevant.
    • Most stuff is just DroneGeneral, though, as it is.
  • We now have two new entries, multiplied_frigate_ship_cap_for_mobile and multiplied_strikecraft_ship_cap_for_mobile.
    • These let us make fleets larger or smaller based on what the centerpiece is, separate from the fleet design itself. This is intended specifically for the officer and strike fleet types, to let us have them share the types of fleets but to let the non-officer fleets be larger in general.
    • Note that officer fleets and non-officer fleets are NOT intended to be balanced with one another (officer fleets are more powerful, naturally), but the officer fleets are more rare and more powerful as well as more expensive in general.
  • There are several variants of tranport flagships, which all look the same and have the same name, but which seed at different frequencies and have much larger frigate, strikecraft, or some mix of the two caps.
    • The idea is that if you want really huge fleets of smaller ships, then these are where they come from.
    • The balance of all this new stuff is very untested, but the seeding of them seems to work at the very least.
  • Thanks to Nameless Terror for inspiring these various changes.

Balance Tweaks

  • Overloader Combat Factory speed boost increased from 20% to 40%.
  • Battlestations and Citadels that roll the OtherDefenseFocus design (i.e Tractors, Tachyon, etc) now have Turrets as intended.
  • Shieldwall Battlestation shields increased from 350k to 500k.
  • Shifted Strength values around (mainly Guardians are lower).
  • Mobile Fleets should now always have at least two unit types.
    • Finding a Fleet with just one unit type was rather bad, and kind of doomed that Fleet to being relatively useless.
    • This was especially bad if it happened to the one adjacent to your Homeworld.
  • Most units for the AI now cost twice as much for it to purchase.
    • Guardians and Turrets cost 50% more, Frigates cost 33% more.
    • At the same time, the starting AI defenses are increased to make them roughly the same, as that seemed mostly okay, it was mainly the sheer wave sizes people were getting.
  • Shifted some of the Armored Golem hull into shields.
    • Thanks to ptarth for the inspiration.
  • Economic and Military Command Stations store 300k metal instead of 100k, Home Command stores 2.5 million instead of 2 million.
    • Thanks to ptarth for mentioning a problem here.
  • Spire Frigate durability upgraded a fair bit, the "Railcannon" variant has a 50% damage increase on the Railcannons, and the "Laser" variant loses the damage bonus in place of simply firing a lot more shots.
    • Thanks to trillioneyes and ptarth for bringing the issues up.
  • Citadels have some weapon boosts.

Speedier Flagships!

  • Player Golem Arks speed doubled.
  • Ark speed increased to 1400.
  • Spire Frigate speed increased 50%.
  • Player Arks and Spire Frigates move 50% faster after entering a planet for 5 seconds.

Way More Decloaking Capabilities For You!

  • Combat Factories now spawn with Combat Sentry Frigates.

Way More Engineers For You!

  • Added a new category of ship_cap_group for fleet memberships, this one called Civilian.
    • Turns out that we just completely forgot to add in the ability to generate more engineers via battlestations and citadels, that that was most definitely supposed to be a thing.
    • This won't affect existing savegames, but you should be finding caches of engineers that you can construct along with your battlestations all over the place now in new games.
    • The idea isn't to increase the ship cap for engineers on a given planet by adjusting the planet itself (unless you want to change command station type), but rather by which types of stations you put there, and what engineering caps they have. That was always the plan with fleets, but was just a complete oversight.
    • The reason for the new Civilian category is so that we can have caps of engineers (and later maybe a mix of something else) that is separate from the OtherDefenses, turrets, and whatever else. Basically to let them not compete with other types of defenses while still being added new.
    • Thanks to Badger for reporting.

No More Mysterious Metal Increases As Marks Go Up

  • There is no longer any added metal cost to having higher-mark units.
    • Some may lament this, but this was the only downside to increasing the mark of units, which is otherwise an all-positive thing to do. It was such a sharp negative that you could actually tank your economy without warning.
    • The first game made good use of this because you could choose to build cheaper low-mark units at any time, and then more expensive high-mark units later, and the higher metal and energy costs, as well as lower ship cap, were all deterrents to the higher marks being overly relied-upon. That was an interesting system, but we moved away from that well over a year ago, if not more, when we combined all the ships of yours into being the highest mark of whatever their line is.
    • This new system is one that does stress your metal reserves less, probably, but you're gaining so many more ships over time (by capturing more fleets) that you're still going to need more metal later in the game than what you start with. It's just due to increased ship counts in this game, not due to your units suddenly and unexpectedly costing more.
    • Thanks to Karhax for reporting the root issue here.

No More AIP Increases From "Too Many Fleets" In A System

  • Got rid of the "too many fleets at a planet" logic entirely, at least the current version.
    • It simply felt punitive and un-fun, and there was no version of that style which was likely to be fun. Nonetheless, we still just commented it out for now so someone can build something on that if desired in the future. We are also going to be working on some things to prevent players going absolutely nuts with how they stack things, but they won't be so opaque or so likely to unexpectedly bite you.
    • Thanks to basically everyone playing the betas for complaining about this. Honestly that didn't hugely surprise any of us, but the discussion it sparked was interesting. In particular thanks to Nameless Terror, Ecthelon, themouthofsauron, Karhax, and probably some folks we missed.

Version 0.852 Directness Is Better

(Released April 20th, 2019)

  • Rather than being markless, Sentry Frigates are now mark 1 but only get upgraded by the fleet itself upgrading (which isn't a working mechanic yet, it's coming!)
    • Thanks to RocketAssistedPuffin for noticing this.
  • Added a new Tooltips setting option: "Show Weapon Activity Details"
    • If enabled, then each weapon in your tooltips shows you a bunch of info about how long until it reloads, why it didn't fire most recently, and other such info.
    • Previously this info was just always shown, but now it's off by default.
  • The tooltips -- for player ships or anything on the build sidebar -- now tell you if the ship is unable to be upgraded, or what techs upgrade it if any do, or if they are of the sort that only upgrade when their fleet itself upgrades.
    • Thanks to Vinco for reminding us just how important this is, although we were already going to do it.
  • One crippled mobile fleet flagship among several functional ones could previously erroneously prevent you from building command stations. Fixed.
    • Additionally, now battlestations/citadels are able to build command stations, not just mobile fleet flagships.
    • Thanks to ptarth for reporting.

AI Reconquest Command Stations

  • There once was a specialtype of "NormalAICommandStation." This has been removed, and split into:
    • AICommandStationOriginal, which is used in the majority of cases.
    • AICommandStationReconquest, which is used for cases where the AI reconquered a planet.
  • Added a new "AI Reconquest Command Station," which is now what the AI will seed after taking back a planet during a reconquest wave.
    • This acts just like the original command stations of the AI, with the following exceptions:
      • It has twice as much health and shielding.
      • It doesn't have any confusing messages about AIP going up if you destroy it (that already wasn't the case, but the interface made it sound like it did).
      • It can't be hacked for science extraction. Go build your own command station there if you want that science, sonny.
      • It doesn't grant any scouting intel when destroyed, so you can't use any exploity type of behavior to let the AI take a planet back and then destroy the reconquest station in order to get more scouting intel AIP-free.
    • Note that in existing savegames, any existing command stations the AI put there because of reconquest will still be of the original sort. So you won't see this until the AI does a reconquest wave in this version or newer.
    • Fun fact, the humans-don't-autotarget-this rules are still the same here, for now at least, but this can be changed in xml if we really want to. We left this not because of an AIP cost (which is why the original has it), but because there might be a very valid reason you want to let the AI keep the planet (aka them wasting reinforcements on a planet that has been neutered). So having your ships go into auto-kill mode would probably break some valid advanced strategies.
    • Thanks to BadgerBadger, TechSY730, and Exlium for suggesting and reporting various issues that led to this.

Ship Rallying Out, Direct Orders Inheritance And Position In

  • All concept of ships rallying to... anything... is now gone. It was annoying and full of edge cases that would cause players to have their fleets not behave how they wanted them to as refleeting was in progress.
    • Now all ships that are created for a fleet by a factory now pop straight out of the fleet centerpiece, with all the orders from the fleet centerpiece (including stance).
    • This gets around some of the most annoying logistical issues, and because the centerpieces of the fleets are so large it makes enough logical sense to not cause huge amounts of cognitive dissonance. Putting gameplay first, this is the only thing that really solves our age-old (literally like a decade old) problem.
    • Thanks to wm46 and others for reporting, although here again we were already leaning in this direction because of our own frustration.

Version 0.851 Drones And Economies

(Released April 19th, 2019)

Player Command Station Rebalance

  • Re-wrote the economic command station description:
    • Economic variant of the planetary command center. If this is destroyed, you lose control of the planet. This variant gives greatly improved metal and energy output, but lacks the ability to directly defend itself very well. It doesn't even have any means of decloaking enemies directly. Planets with these should either be protected by a powerful citadel or battlestation, or so far back from the front lines that they are safe.
    • Thanks to Vinco for inspiring this change.
  • The matter converters and energy collectors were higher on the logistical command stations, and now that has been swapped with the economic command stations.
  • Logistical command stations now come with 20 mines built in, and also two focused gravity generators. More stuff to help them be more tricky and dangerous directly.
    • They also now get 2 forcefields while the military variants only get 1 instead, swapping those two.
  • Re-wrote the logistical command station description:
  • Logistical variant of the planetary command center. If this is destroyed, you lose control of the planet. This variation is by far the best at finding cloaked enemies, tractoring enemies, and even laying traps (mines!) for enemies. Beyond that it's kind of a halfway point between the military and economic drives of its peers. They also get two forcefields where their peers only get one, and way more engineers.
  • Military command stations now get 5 beam cannons and 15 ambush turrets, making them by far the most able to defend themselves without the help of a battlestation or citadel.
  • Re-wrote the military command station description:
    • Military variant of the planetary command center. If this is destroyed, you lose control of the planet. This variation is by far the best at defending itself, and perfect for dangerous border planets. It also gets the most factories, making it probably the best way to resupply your fleets near the front lines.

Bugfixes

  • The lost spire frigate faction has now been properly removed from the game.
    • We had already folded the functionality from that into the main game itself, so the faction was pointless and just broke things if you enabled it. If you enabled it in your savegames, then those savegames are probably now broken.
    • Thanks to RocketAssistedPuffin for reporting.
  • Fixed a longstanding issue where if we removed game settings from the game, then old settings files that were loaded in would complain about UnrequestedXMLAttributes.
    • Thanks to ptarth and Badger for reporting.
  • Ships that are owned by no faction (aka not claimed yet) should no longer have their cloaking devices function until they are claimed. Tested and works as expected.
    • Thanks to DEMOCRACY_DEMOCRACY and RocketAssistedPuffin for reporting.
  • The seeding logic for NormalPlanetNastyPicks, SpireArchives, and CivilWarTriggers was... nonsensical? The code did some kind of strange things.
    • It should now work properly and not do things like putting spire archives on AI homeworlds.
    • It also now logs what it is doing to the mapgen logger if you have that turned on and want to see what it is doing.
    • We've not tested this at all.
    • Thanks to zeusalmighty for reporting.
  • Fixed an issue with beam cannons where they were being upgraded by the Melee tech instead of Splash.
    • Thanks to DEMOCRACY_DEMOCRACY for reporting.
  • Fixed a longstanding bug where it would register a double-click if you were clicking too rapidly between different parts of the screen. Mice are fast! Now if you've moved the mouse more than 10px, it doesn't consider it a double-click. Probably. We need to test that.
    • Fully fixed (and verified the fix) to the double-clicking stuff.
    • Thanks to Bobtree, Talkar, Kaleopan, and Exlium for reporting.
  • Fixed the "MISSING LOCALIZATION: AIPChangeReason_FleetConcentration" bug.
    • Thanks to RocketAssistedPuffin for reporting.
  • It is now possible to explicitly set up in the xml that units cannot be stacked. Use the tag cannot_be_stacked="true".
    • This also now automatically happens on all AI guardians (dire and regular), drones (that got exploity), lone golems, and NPC centerpieces.
    • All of the marauder raiders and similar can no longer be stacked because of the tag, to prevent issues with them.
    • Astro Trains also can no longer be stacked, since that's just odd.
  • Fixed a bug where drones were never being set up properly on drone controllers at all (hive golem, etc).
  • Fixed a bug where factories would help with drone production.
  • Fixed a bug that was preventing drones from ever being deployed even if they were internally created. Fun with boolean inversions!
  • Fixed a whole nest of bugs where drones that were a part of non-drone-specific fleet types could never be spawned by their spawner.
    • Aka this was breaking things like hive golems, but drone producer guard posts would have been fine (though that bit is untested).
  • Fixed some issues with the drone caps getting higher when the mark level of the drone controllers was higher. It should be the same ship cap for those drones regardless of cap, unlike with regular non-drone ships.
  • The data and tooltip info for AIs unlocking new ship types has been removed, as that mechanic actually isn't a thing anymore.
    • Thanks to RocketAssistedPuffin for reporting.

Irritation Fixes

  • AI guard posts that are no longer on AI-controlled planets now lose their cloaking. This also just seemed like a needed thing to avoid an annoying bit of cleanup you otherwise have to do. Typically they would be sitting around doing nothing, since all their defenders fled. Tested and works as expected.

Interface Improvements

  • Double-clicking fleet leaders (centerpieces, flagships, command stations, whatever) now selects or deselects all the stuff in their fleet, rather than all the things of their same type.
    • For individual ship types, like fighters or whatever, it works like it always has.
      • HOWEVER, when it comes to individual ship types, it no longer considers spinoff units (Daggers, etc) something to select along with the main unit type that you might have clicked. Sharing a common ancestor is no longer good enough for the selection stuff to work that way, particularly given the ludicrous number of variants we now have.
    • Thanks to wm46 for suggesting the change to double-clicking on centerpieces.
  • The tooltips now specify how many undeployed drones there are inside an entity.
    • Additionally, you can see the construction percentage on each drone that is getting created inside.
  • In preparation for some upcoming changes, the Ships tab has been renamed to the Local tab, and says "At Local Planet" instead of Ships up at the top.
  • On the fleets tab, it now has a new piece where it will show the hotkey assigned to that fleet, if there is one assigned.
  • You still can't manually assign hotkeys to fleets, but hotkeys are now automatically assigned to fleets as you acquire them early on in.
    • This is something we want to have happen so that the use of these hotkeys is encouraged by the large numbers of people (including some of us on staff) who never bothered to use them in the past.
    • But obviously prior to 0.900 we want it to be something you can control directly, too.

Balance Tweaks

  • Dire Guard Posts no longer increase AIP on death.
    • Was intended to mimic the AIP Floor increase from Classic, but didn't play well with the random Post count and multiple AIs.
  • AI Overlords Tachyon system is a bit shorter range and decloaks at half the speed.
    • Thanks to Quicunque for reporting a situation where this was a major roadblock - more than intended.
  • Dire Tethuida and Shredder Guard Posts fire every 3 seconds instead of 1.
    • Thanks to Quicunque for reporting a situation where a Tethuida was actually far scarier with the gun than intended - it's meant to use the drones, mainly.
  • Shieldwall Battlestation and Rorqual Hegira Ark have much larger forcefield radius now.
    • Things are bigger in general, so you weren't able to fit as much as you used to under these.
  • All Citadels except Interceptors now have a weapon range of 10,100.
  • AI requires higher AIP before increasing its tech level.
    • Used to be, starting from Mark 2: 150, 300, 450, 600, 800, 1200.
    • Now is, starting from Mark 2: 225, 450, 675, 900, 1125, 1350.
      • The AI no longer pays more for higher Mark units, and so it was having very large power spikes relatively early on.
      • Although, Mark 7 is actually triggered not much slower than what it used to, so really annoying the AI is still going to hurt a lot.
  • All Battlestations shield points increased to 350,000.

Version 0.850 The Arrival of Fleets

(Released April 18th, 2019)

We are breaking all the savegames again, sorry about that. This series of updates leading up to 0.900 should collectively be the last time for real for real, although we've said that before. It's not our practice to do this sort of thing at all, typically, but this game has been going through a lot more pre-release evolution than most of our titles have. The old savegames won't even make sense in the new version, really.

  • And in general if you're not clear why we're doing all this, then here's a really long document that explains it: AI War 2 - Unit Construction / Fleets Rework.
    • Although we went much further than the document laid out, moving into territory like making the AI planets more unique from one another, etc.

Misc

  • Dyson Spheres will remain antagonized much longer after hacks.
    • More hacks against a Dyson Sphere will increase the antagonization time.
  • Allow the AI to spawn Dyson Antagonizers in the galaxy. Only Dyson factions with high enough intensity can spawn antagonizers.
    • Antagonizers affect all Dyson Factions, so if you've enabled 3 dyson factions, the AI will spawn antagonizers for each dyson faction, and you have to kill all the antagonizers before they will become friendly again.
    • Dyson Antagonizers follow similar spawning rules to Instigator Bases; they need to spawn close to the player at lower AIPs, and at high AIP can spawn anywhere.
    • To compensate for this, the Dyson's income has been slightly buffed.
  • Gives some units unused voice lines, and the Dyson ships the Zenith voice.
    • Engineers and other similar civilian ships now actually talk!
  • The galaxy map now has more of a "military screen" style look to it again, although this doesn't yet apply to the actual icons and lines and so on. But it has that same sort of scanline effect and whatnot as in the first game, though more involved now and fancier with some hexagons, etc.

Quick Starts and Tutorials Gone for Now

  • The old quickstarts have all been moved to QuickStartsOld, since they no longer function with the new system in general.
    • Because of the way Steam updates work, the QuickStarts from now on will be loaded from QuickStarts2 instead, which is presently empty and needs to be for the next little while. But at least it won't be throwing errors when players try to start quickstarts in the new build.
  • The pre-existing tutorial has been completely disabled, since it is probably nonfunctional in general and tries to teach you a lot of things that are no longer relevant. We're going to be majorly redoing that in the future, but for now we don't want people accidentally going in there.

Fleets Added

  • Fleets are a new concept in the game, which are basically collections of ships in one of a few different categories. The AIs and NPCs don't really use these, per se, although there's nothing stopping them from doing so. But on the player side, this basically is now the central grouping of units for your stuff, and you use these offensively and defensively. You can get waaay larger ship caps than before, but each group is... well, automated as well as being a distinct flavor unto itself.
  • The concepts of destruction points and Ark Upgrade Points are both gone, and replaced by Fleet EXP instead. This works similarly to both of those other things, in that if your fleet centerpiece is on a planet with an enemy ship that dies to your forces, then that fleet gains some EXP. More for big-ticket items.
  • A bunch of logic for how fleets are selected and moved around, which was previously related to control groups, is now in place.
    • The logic for how to assign fleets to keybind indices (fleet groups, essentially) for now is going to be clicking-the-interface-only, since that's really confusing in keybinds. We may wind up reintroducing keybinds for this at some point in the future, but more likely would be a better interface for organizing fleets into the keybinds directly, since this would avoid the confusion factor for players.
    • The big sticky spot for confusion is people thinking they're making a control group of ships, when really it is of fleets, in essence. Even this explanation is confusing. ;)
  • The various things that you can purchase from the Zenith Trader are all now planet-bound, even if they are normally mobile. They go into the fleet of that planet, and are on permanent station-keeping there.
    • In theory we could later have something that can let you purchase new ships for mobile fleets from the Zenith Trader or otherwise, but that would need a new UI and new general mechanics. That would be fun, but in terms of replicating the experience of the Zenith Trader thus far, here's how it needs to work for this part.
  • The various kinds of command stations now each come with their own hand-designed fleet styles, which are of the type that just use the max cap of each type they can have inside of their categories. That way they are always predictable per type, but you get more forcefields with a military command compared to economic, etc.
    • Things like minefields and the gravity generators don't go with any of these, but rather have to be gotten via Battlestations.
    • When it comes to factories, some of the command station types grant more factories per planet than others.
  • The Battlestations in general are set up, although most of them just seed randomized template-based fleets. The Ensnarer one has an example instead of a specific type of fleet that it uses in place of a template.
    • Bear in mind that there are several different ways to set up how a fleet leader (Battlestation or mobile) might have its fleet design created, and if none of them are set up then you'll have a lonely empty fleet. Right now the game doesn't warn the designers about that.
    • In general there is a looooot more that could be done here in terms of making new and unique things, but right now the procedural fleets themselves are enough that probably that's not a big priority.
  • The general strikecraft and frigates are all now set up so that they'll populate some interesting different procedural fleet designs in (currently) 9 different overall flavors. But even within those 9 flavors, there's a huge amount of variety likely to be found.
  • The game now actually seeds the Battlestations and fleet flagships, and makes sure that they have their fleet designs populated right from mapgen start.
    • First it tries to seed 1 item with tag "MobileCombatFleetArkOrGolem" on a planet directly adjacent to a player homeworld.
    • Then it tries to seed 1 more two hops out from a player homeworld.
    • Then it tries to seed at least eight more, but up to 1 per 25 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
    • It's possible that it won't have enough types or will run into blockages, and that's A-OK to happen.
    • Next it repeats the process by trying to put 1 Battlestation (based on the SpecialEntityType directly) on a planet directly adjacent to a player homeworld.
    • Then it tries to seed at least five more, but up to 1 per 50 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
    • In both cases, if it couldn't seed a thing closer in, then it will retry with it further out. This is mostly only relevant for snake maps and other things with very few direct and secondary connections from planets.
    • Next it repeats the process by trying to put 1 item with tag "MobileSupportFleetFlagship" on a planet two hops out from a player homeworld.
    • Then it tries to seed at least two more, but up to 1 per 150 planets, throughout the rest of the galaxy at least 3 hops from the player and 2 hops from the AI homeworlds.
    • The reason it uses the SpecialEntityType directly for Battlestations is because that's the most direct thing. For the other two categories, those both have a MobileFleetFlagship type, and so those tags help specify a bit more if they are regular (and thus more common), or are "support" (and thus less common and further out).
  • The Battlestation special entity type has been split into two: BattlestationBasic and BattlestationCitadel.
  • The MobileFleetFlagships special entity type has been split into three: MobileCombatFleetFlagship, MobileSupportFleetFlagship, and MobileLoneWolfFleetFlagship.
    • The third in this category is for the things that don't have a fleet with them, namely right now the spire frigates.
  • The seeding for battlestations and mobile fleet flagships has been updated, as you might guess.
    • The existing logic for mobile fleet flagships now applies to MobileCombatFleetFlagships, and MobileSupportFleetFlagships still also work the same.
    • The existing logic for battlestations now applies to BattlestationBasic.
    • MobileLoneWolfFleetFlagship is now seeded "kinda wherever" and is both rarer but also no longer counts against the normal combat fleet flagships.
    • BattlestationCitadel is following the general pattern of the basic battlestations, but with the following differences:
      • It only ever seeds one on a planet, not two at a time.
      • It seeds one within 2 hops of a player starting planet if possible.
      • It then seeds a smaller number of citadels out in the galaxy, mixed between the middle-distance and far out. These are in addition to the basic battlestations, not in place of them.
    • With all this, there's a better sense of control of what exactly the player can look forward to out there, but also in general there are yet more capturables out there, and they can continue to be balanced in their niches: we can add more lone wolf stuff without swamping the main mobile flagships, and we can add more citadels or regular battlestations without affecting their relative mixes.
  • The various MobileSupportFleet flagships now are able to get upgraded from Mark1 to higher marks based on their fleets being upgraded. They have no techs that benefit them directly.
    • This fixes an issue with them referencing an Engineer tech that was nonexistent.
  • There are now fleets associated with each faction as their "loose" fleet.
    • For AIs and NPCs, this is just used for all their ships, more or less, and doesn't really get used for much. Drones don't go in there, but that's it. Actual useful fleets can be created as-desired in the future, but for anything not using something specific, it uses this.
    • For the players, there is a PlayerLoose fleet, which is basically "remainder units" that are not in a fleet. Odds are that this won't be used, but it's an overflow valve in case we have a truly odd case or potentially even a bug that we want to fail more gracefully.
      • Oh! Actually, we are using this now for ships that are being captured via zombification. So there you go, a use for it already.
  • There are now fleets associated with each PlanetFaction as their "fleet of that planet."
    • For AIs and NPCs, this is just a reference to their parent loose fleet from the faction itself.
    • For the players, these are unique fleets that are what the command stations go into and put their stuff into.
      • It's entirely possible for a command station of a player to die, but in those cases the fleet must live on.
  • When the game creates a new ship/structure, it now REQUIRES that the appropriate Fleet.Membership be passed into it.
    • This solves all sorts of bugs where fleet membership was never being set previously.
    • In the case of fleet leaders or ships that create drones, it ignores this membership, however, and creates and populates its own fleet.
  • Added a whole bunch of ways to calculate the strength and health percentages of fleets based on their type, which is more complicated than you might think.
    • For command station fleets, or the battlestation ones, it's based around the total power out of what you've DECIDED to build (and what has died to remains or is hurt or whatever).
    • For drones and mobile fleets, it's out of the total things that would be auto-built, since you get no decision-making in whether to fully stock those fleets or not (aside from keeping them away from docks).
    • This is surprisingly complex when it comes to things like the ships being transported in fleets, or undeployed drones, etc, etc.
  • A new destroys_self_until_not_over_ship_cap_if_planetary_command xml tag has been added.
    • This is used only in a really narrow set of circumstances: it was a planet that a human player controlled with one kind of command station, and they now have a different kind of command station there.
    • Basically, different types of command stations give you different numbers of engineers, basic turrets, energy collectors, etc. This prevents you from having too many left over after you switch from a military to an economic command station, for instance; there were all sorts of games you could play with that to exploit things.
    • What this does NOT do is destroy units after your command station has died on a planet; in those circumstances, whatever is there continues to live on until you build a new command station. Presuming you rebuild as the same type, nothing gets destroyed.
    • This flag is also explicitly NOT on certain units like the human home forcefields and the various things you get from the Zenith Trader. They will frequently be over-cap (since their command station type doesn't always include it but you might have bought it separately), and so these are always assumed to be valid.
    • Confusing? Basically this just shuts down an exploit and doesn't affect much else.

Docks Sidebar Tab Gone, Fleets Tab Added

  • The docks tab is gone, and a new fleets tab has taken its place.
    • The fleets tab has a bunch of sections which show first your fleets at the current planet, and then all of your fleets in the entire galaxy, by category, after that.
    • The categories, in order, are:
      • Current Planet
        • A quick view of all your fleets at the current planet.
      • Mobile Combat
        • The most versatile of your fighting forces: generally intended for offense, but quite able to come and defend your own planets as need be.
      • Mobile Support
        • Unusual supporting fleets that are able to either act as a force multiplier for your offensive or defensive fleets, provide remote supply on deep strikes, or perform surprising other secondary duties.
      • Lone
        • Unusual single 'lone wolf' massive ships that forego having attending ships in exchange for a simply awe-inspiring amount of direct power. Use them offensively or defensively, as you see fit.
      • Battlestations
        • General battlestations that are useful for either defending your planets or for setting up offensive beachheads on enemy planets.
      • Citadels
        • Citadels that are much stronger versions of your general battlestations, packing a huge punch in their own right as well as providing access to defenses for your planets or for offensive beachheads on enemy planets.
      • Planet Cmd Stations
        • Each command station you have on a planet has a small force of mostly basic, utility, or economic nature. However, if you've made purchases from the Zenith Trader or found other unique capturables throughout the galaxy, you might have some fixed-position weapons of surprising power here, too.
    • For the time being, the tooltips over the actual fleets just shows the tooltip for their centerpiece. This won't always be the case; they'll later have their own unique tooltips that are more informative.
    • For the time being as well, clicking these does nothing but show you a message saying that the fleet management interface is coming soon.
    • The individual fleet entries show the name of the fleets, their health percentage, their total ships out of their EFFECTIVE ship cap (for the stationary things, that's out of what you've deployed), their planet name, and their total effective strength if they were fully powered at the level that is chosen for them.
  • Added a new specific tooltip for the fleets in the fleet sidebar.
    • This gives a lot of the same info you could already see on the centerpiece's tooltip, but in a slightly more focused and condensed format.
    • You can also now right-click to center your view on the centerpiece and select the entire fleet. The tooltip now tells you this. You can also hold shift to select multiple fleets quickly by doing this, as you would have with selecting control groups previously.
  • Given that the fleets in the fleet sidebar can be shown twice -- once for their current planet, and once for their other category -- we decided to add some color to the ones for the current planet to set them apart. This helps to keep it clearer visually what is happening.

Hand-Designed Fleet Capabilities

  • Normally it's nice to only have... one way to do things when setting up the XML, right? I mean, that's the most clear thing, eh?
    • However, in a few cases it is sometimes nice to be able to have parents talk about their children, rather than children always being the ones talking about their parents.
    • This is most notable for hand-designed fleet templates, where we don't want auto-modded stuff to be added in a bunch.
    • Thankfully, we can do both things, with both coexisting and neither acting in exclusion of the other.
      • Basically, NORMALLY, you should definitely still use the fleet_membership nodes on ships in order to get them into fleets. This is more modder friendly and more flexible in general.
      • THAT said, now you can also define ship_membership nodes in the fleets themselves, which basically are just the inverse of a fleet_membership node. They say all the same things, but say "a specific ship is being added to my fleet," versus the other way around with a ship adding itself to a specific fleet.
      • This is now in use in a new CMP_StartingFleetDesigns.xml file, which uses a new design_logic of InitialPlayerFleet.
        • Basically: we want to have 5-7 starting player fleets that are hand-designed including what their centerpiece is as well as what their ship compositions are. This lets players start off the game with something they are excited about, and move forward with whatever they find procedurally generated after that.

"Control Groups" Are Gone

  • Fleets basically handle the same thing. But better. Some of the interface for this won't be until an upcoming build, though.

"Supply" From Fleets

  • Added a new IsConsideredOutOfSupplyOfParentFleetCenterpiece bool, which is calculated based on ships within a human mobile or defensive fleet not being on the planet of their centerpiece.
    • This is done separately because that way it can only be calculated once per second, which is a lot more efficient.
    • This then gets used by things that are checking to see if ship systems are disabled -- aka guns, engineers, etc. These ships can still move, but they're neutered on purpose.
    • If the centerpiece is itself kind of hobbling along half-dead, it's okay because the ships are still able to draw supply.
    • For the stuff that is either considered "loose" or part of a command station's fleet, these things don't have the concept of supply at all, because their fleet leaders can legitimately be destroyed permanently and they need to still function. Or the loose ones don't even have a fleet leader.
    • The goal of the fleet leaders thing is to keep the mobile fleets, and the Battlestation stuff, remotely in the same area as one another. You can't start segmenting your fleets and sending them off to fight WAY off, only raiding neighboring planets. This is for balance purposes more than anything else, and is similar in reasoning to the old Supply concept from AIWC. Funny how things like that come back around!

Squads Removed

  • Intra-Squad Formations have been removed, as have the concept of squads, the counts of "visual things per subsquad," and so on.
    • The whole "squads" idea was mainly to have more ships without having more ships, and that just wasn't working out for a variety of reasons. Now it's just ships instead.
  • large_ship_scale_multiplier has been removed, so that all marks of a starship or whatever are now the same size. This lets us define them in ways that are best for being able to see them without them getting too stupidly huge.
  • Various parts of the game referred to "squads" and "ships" as separate things, and there were internal mechanics for repairing lost ships in a squad, etc.
    • That's all gone now, but there are some code remnants (to say the least) that still refer to squads. If you run into anything in the front-end (aka actually in the game) that mentions squads, we'd appreciate a heads up so that we can correct that.
    • There ARE still visual groups of many of the smaller ships (V-Wings, etc), which is because those are just a single "3d model" made out of several smaller 3d models at this point. We can go back and correct that later, or we can leave it; we're kind of on the fence.

Rallying Ships From Factories to Fleet Centerpieces

  • IF a mobile fleet of yours is on a planet with a factory, or on an adjacent planet, then the factory now produces ships for it as fast as it can.
    • In the interest of fairness, a given factory divides up its resources evenly between every possible ship that it can build for every fleet in range, and works on them all at once. So there are no queues, there is no order to set, there's just whether or not you accelerate the factories with engineers or not.
  • The various types of "ships rally to X location after construction" are now gone, with instead all the ships from docks rallying to their fleet centerpiece, whereever that may be.
    • This is highly automated and much more the default thing we want to have happen.
  • Fixed a variety of bugs with ships rallying to their fleet centerpiece (which is the only type of rally that now exists).
    • They should rally to where the centerpiece either is or is heading, and they'll stop rallying once they get very close to where the centerpiece is.
    • They stay in rally mode, continually updating their destination, until they reach the target. Initially the target can only be on the planet they are on or an adjacent planet, but it's possible that the target will move even further away while they are chasing it, and they should adjust to follow. That has been tested except when moving more than one planet away while they chase.
    • Note that you can't set the rallying directly at all, unlike prior versions of the games. Factories just make whatever is needed in order to bring a local fleet up to full fighting force, and those things automatically rally to their respective fleets. "Local" means on this or an adjacent planet.
    • On arrival, the rallying ships should take up the disposition of the ships that are at the other end, but that remains to be seen if that works as the interface for that bit isn't there yet. If you see problems with us, please do let us know.

Procedural Fleet Names

  • The fleets for most fleets now have default names that are pulled from folders [FleetNames_Mobile_P1]+[FleetNames_Mobile_P2]. If anyone reading wants to add to these after this build is out, that's certainly welcome.
    • This wasn't a high priority item, but Chris needed a small mental break when starting the morning. ;)
    • These can be renamed later by players.

AIP Penalties for Fleet Clustering

  • If you put too many ships from too many fleets on one planet, basically the AI notices, gets scared and angry, and the AIP starts increasing over time. It warns you about this.
    • You're allowed to have WAY more units in this version of the game compared to any prior one, but if you go putting them all one one or two planets the AI is going to kick back... hard. That whole "guerrilla warfare" bit goes out the window if you advertise your presence like that.
  • The fleet concentration AIP penalties will now only kick in at 3 fleets on an AI planet, and 5 on a player planet, rather than 2 and 4 respectively.
  • The way that the "too many fleets on a planet" code works has been reworked a fair bit, but not tested:
    • It now looks at all the human ships that are part of a mobile (flagship) fleet or a battlestation/citadel fleet. Before it was just looking at the fleet centerpieces, meaning you could have your centerpiece hide on an adjacent planet and send its ships in and the AI wouldn't notice.
    • It also now only looks at the ships that are actually on the planet, and not the total strength of the fleet. The strength must be at least 2 in order for it to care at all about it for these purposes. If you send in 10 fleets of strength 1 -- or a slice of them that is strength 1 -- then it won't care.
      • This latter thing will probably encourage all sorts of bad behavior, but we'll figure that out in the future. For now it should feel more natural in general, but it will likely need further iterating.

AI Behaviour Changes

  • The AI will now be less worried about distant mobile enemy forces.
  • The AI will no longer mistakenly count Guard units as Threat in some code paths
  • Make some improvements to hunter/warden fleet routing logic
    • Thanks to zeusalmighty for the Hunter/Warden save game
  • Each AI faction now has its own Hunter/Warden fleets. The units of each Hunter/Warden will just show as "Hunter Fleet" or "Warden Fleet", but there will now be multiple fleets acting independently. The goal of this is to make those fleets much more flexible in how they deal with enemies.
    • Only one Hunter and one Warden are visible in the game lobby. The other hunter/wardens will copy the colours but not the settings of the visible Hunter/Warden.
  • Add a new gameplay mechanic, "AI Civil War". At the beginning of the game, Communication Nodes are seeded near all the AI homeworlds. Destroying all of them will trigger the AI Civil War by making the AIs unable to communicate with eachother. This will make all of the AI factions hostile to eachother; they will send waves at eachother, use Threat on eachother, etc, just like they do against the player.
    • This will significantly strengthen all the AIs.
    • The Warden and Hunter Fleets will remain friendly with all the AIs. They are unaffected by the Communication breakdown and are quite confused.
    • If there is only one AI in the game then the Communication Node will not be in the game.
    • "AI Civil War" mode is also available as an option to the Game Lobby, which will start the game with AI's in Civil War mode. This is for testing and sandbox purposes.
  • The targeting code now treats XML-based importances as more important than 'amount of damage I can do'; this makes it less likely for units to ignore Command Stations and other high-value targets in favour of fleetships
  • Change how overkill is calculated; only count units that are actually in range of the target
    • This makes ships less likely to dance between multiple targets, unable to pick which one to attack.
  • Don't throw away Distance to Target information when choosing a target
    • This also makes ships much less likely to do the "can't decide on a target" dance
  • AIs no longer have any concept of "unlock points," and they don't unlock new ship types over the course of the game.
    • This was a neat concept in AI War Classic, kinda-sorta, but in a long campaign it just meant more chaos, honestly.
    • The original intent was to make it so that there was a feeling of progression and the AI doing new things with new tools as you go through the game, and that is now handled far better via the ship groups instead, and the planets being more unique, etc.
  • When the budget for a wave is over 3k, the AI no longer randomly gets guardians added in as a thing they can buy for the wave. Instead things are more hand-designed than that.

Map Changes

  • Several map types have been improved by Draco.
    • Thanks Draco!
  • Make the Simple and Realistic map types more interesting by fixing a dumb bug in them.
  • The Max/Min number of planets in the galaxy is now defined on a per-map type basis rather than a global (since some maps scale up to larger galaxies better than others)
    • Some map types go up as high as 500 planets, others are capped at an AIWC-like 120 planets
  • The previous methods for some of the map seeding of AI things are also being... phased out in some ways, and made a lot more centralized and thus flexible.
    • This in turn lets us make the various AI planets a lot more unique, and lets modders add to things without replacing them.
  • The warden special forces hideouts were previously always seeding 4, but now it's sometimes more based on the size of the galaxy being larger.
  • The game is now able to seed multiple entities on certain planets if we so desire, during mapgen.
    • As the sole use of this so far, we're now seeding two battlestations/citadels on any planets that have those, to make those a lot more attractive as targets and also thus provide more firepower for defensive purposes for players without them having to capture QUITE so many planets for each of these that they get.
  • Did a fair bit of rework on some of the mapgen logic where it is trying to seed things close to the player homeworlds.
    • A while back we had some problems where things were frequently seeding too close, so we put in code to counter that. That was in turn preventing us from intentionally putting stuff there more recently.
    • Now there's a healthy balance between us being able to do that while still avoiding the old bug, and in general things seem to be working well.
  • There was some other funkiness with it being really unlikely to seed certain things very near to you.
    • That has been fixed, to start with, but then beyond that it also now tries to seed half the flagships and battlestations kind of in the middle-distance for you on the map.
    • In general this now gives you way more options for middle-game goals for making yourself stronger.

Limited Ship Types For Each AI Planet

  • Essentially it's super boring when there are too many types of ships all over the place on every planet for the AI. So now it does this really interesting thing where it chooses a subset/theme for each planet, and some themes are harder than others, rarer than others, etc. Now you can actually see what is there, formulate a strategy of which of your fleets is best to send, and... well, send them.
  • Planets now remember what specific ShipGroup out of a ShipGroupCategory they are using for a given faction. This is where the theming comes in for these planets.
    • For the wormhole sentinels, it's actually only seeded at the start of the game, and each wormhole is unique rather than being homogeneous per planet. So those don't get remembered.
  • The entire way that AIs choose their "draw bags" for how to populate a planet's guard posts, strikecraft, turrets, or whatever, has been redone; but also the same is redone for waves and CPAs and the like. It's all using the new AIShipGroups and AIShipGroupCategories.
  • In the tooltips, you can now see how many ships and what strength is contained inside a guard post, as you used to be pre-fleets. HOWEVER, you can also now see exactly how many of each type of ship is inside there, to see what mix the AI is using at that planet without having to go aggro a guard post.
  • Basic definitions for ai ship groups and ai ship categories have been implemented. These are based around the excellent document that Puffin set up on the subject, but with some changes and additions here and there.
    • Note that this is ai_ship_groups_i_am_part_of, and it refers exclusively to how the AI uses ships. This isn't meaningful at all to fleet design stuff for players, which is a separate topic.
    • This also doesn't affect minor factions, although there's nothing stopping minor factions from adopting this new pattern in the future.
    • At the moment this also only describes strikecraft and frigates, and not turrets or other things of that nature. Those are coming soon. Puffin, if you want to set up the other categories and groups based on this starting template, probably ignoring the "singular freaky surprises" stuff, then please feel free as it would save me some time.
    • The overall rule with this usage of ships in groups is that anything that is a variant of something else shouldn't be in the same group with it. This is just a design thought, not a technical restriction. Warden and Hunter fleets will wind up having all sorts of strange mixing and matching, but by keeping to this rule we will ensure that planets and waves otherwise don't have that sort of strange mixing.
    • You'll also notice that for the ship group categories that are specific to certain AI types, like Turtle or Cloaking-Heavy or whatever, those also include some sub-groups that are unrelated to their type, but which will provide some... well, variety. Aka sometimes instead of being a cloaking-heavy wave, it will by an anti-structures wave. Sneaky! There's nothing worse than a predictable AI type, so having some variety in what they do, even if they are thematically heavy, is good.
    • It's also worth noting how the "draw bags" work, in this context. Essentially the number after the things that are included say "how many raffle tickets do I put into the draw bag?" And depending on how many other total raffle tickets have been put in, that's how likely it is to come out.
      • In order to allow for granularity in definitions, our default number of tickets to add is 100. That way we can say "only do this 1% as often as most stuff" by putting in 1 ticket instead of 100.
      • But even there, the odds of it coming out are not 1%, because it depends on what else is put into the bag. And by very definition, what is put into the bag is something that is meant to be unknowable at design time, since it can be modded, and expanded in the future. So we simply use something like "100" to mean "regular frequency, whatever that is," and then the other numbers like "25" to mean "about a quarter as often as usual, whatever that is."
      • It is worth noting that not putting too many types inside a single draw bag is probably good in MOST cases, because it means that players will be facing a planet or a wave that has some sort of coherency to it that they can plan around. I'd say that 3 types is a sweet spot for waves, but sometimes having many more or fewer types is okay. Variety being the spice of life, it's okay that many of the things drift off the "normal" design parameters.
      • Overall we'll find some situations where people go "wow there's way too many xyz unit in this circumstance," and we'll deal with that as need be. But most of these groups are intended for things that are not strictly numbers-bound (aka more than a handful of forcefields on a planet is terrible, so using them in these groups would be a Very Bad Idea since it would lead to occasional bouts of player dismay).
        • Most of the time, we are likely to wind up with something like "holy cow that one planet is a nest of sniper like I've never seen in my life," and we just kind of sit back and go "yep! That will happen, in extremely rare cases. Either deal with it or go around, but that's the fun of this." The prior system was leading to a feeling of samey-ness on all the various planets, and so this is meant to break things up more into various thematic niches, some of which are more rare than others due to being either annoying or scary or hard or whatever. But we still want those rare outliers to happen, because those are either the places where good stories happen during AARs, or where the player's eyebrows can shoot up as they go "I'm glad I don't have to go THERE." Or sometimes it's just going to be the Wave From Hell that surprises players before going away again.
    • This whole thing is going to take a lot more defining and redefining over time, but it's really well set up for having lots of ship variants and strange outliers. In a lot of ways, this is intentionally pushing planets and waves a bit more in the direction of a RogueLite, where you never quite know what you're going to find. Chris was really missing some of the sense of exploration, and this is his way of trying to capture that again.
      • And note that this is completely parallel to the player fleet waves and such, so the nice thing is that the AI, other factions, and players can all be thought of using completely separate structures and in completely different terms. As it should be.
  • Each planet belonging to an AI now seeds a single entity from SingularFreakySurprisesAIShipGroup on each of their planets at the start.
    • Note that this includes a fair bit of blank space, and that if it chooses blank space that is considered A-OK. So it won't really be every planet, and the frequency is actually determined in the xml rather than the code.
    • This lets things like the Golemite be set up a lot more directly, and without using tags.
    • The ONE downside of this is that the frequency can no longer be based around things like what the AI difficulty level is. But frankly, that's something that makes the AIs feel less unique and not just easier; if the game is meant to be easier, the player should still be facing the unique foes of that AI nonetheless.
      • As part of this, the explicit seeding code for the Golemite to seed its golems has been removed, and it now uses the new central xml-based function.
      • Note that, if we want to, there's nothing stopping us from using both the old method and the new one at the same time. The new one is mainly a convenience that makes for some powerful new xml-only modding capabilities that don't need to touch C# to add cool stuff to an AI.
  • Guardians now have their own AI ship groups, like Strikecraft, and are similar to them. Did the same for Royal, and it uses those for the wave and reinforcement ones as well, so interestingly it can vary what Guardians it has, or roll the same thing in Reinforcements and Guardians separately and really focus on one thing, or even have almost every kind, with an emphasis on this set, etc.
    • Just didn't like how planets were always a mess of Guardians. Sometimes they still will be, but that's a rare "Oh dear" thing.
How The AI Guards Wormholes Is Way Cooler
  • The Stealth Wormhole Sentinels have been set up as something that only show up rarely, now that scouting is going to be working differently. This is useful for making planets feel a lot more varied, and not all planets so hard to sneak your stealth ships into.
  • Added a new Basic Minefield Wormhole Sentinels, possibly against our better judgement, to let a tiny minority of wormholes actually have mines around them that players can stumble into.
    • Since these should only really show up once, with the AI not rebuilding them, this should be an interesting thing for the player to run into well under 1% of the time. Thanks to Puffin for suggesting this; this should provide for some interesting traps without being too frustratingly common.
  • Actually jacked up the default NobodyHereWormholeSentinels draw bag count to 1000, and the StealthWormholeSentinels to 50, so that the 1 of BasicMinefieldWormholeSentinels is EVEN MORE RARE. Hopefully players run into one or zero minefields during a given campaign, thus making it more exciting.
    • Of course, if someone wants to make a minefield-heavy AI type, that is straightforward to do, now.
  • Additionally, there are now 5 different kinds of wormhole sentinel setups that are based around using tractor arrays and turrets, tesla turrets, gravity weapons and pike turrets, and whatever else.
    • These are also in the minority in terms of how frequently they will seed, but are way more common than the minefields and should make it so that some of the wormholes are a lot more interesting to face, now.
    • This gets back a bit more back to the original design of the original game, which is only possible now because of how some of the scouting changes will interact with the game here. We had had to move away from this because of tedium of automated scouting in other circumstnaces.
    • There are still quite a few wormholes that won't be directly defended at all, and it's possible for us to set up way more wormhole defensive types as desired in the future; these are mostly a proof of concept.
    • Note that with the sentinels at wormholes, the idea is that these will exist from the start of the game and never get upgraded or reinforced, unlike what happens at guard posts.

Revamped AI Types Based On New Seeding Styles

  • Set up new "singular freaky surprises" that includes how golems are seeded for the Golemite now, and actually gives a very rare chance that some regular planets will sometimes have an AI golem.
  • The Vanilla AI type has been renamed to "Full Ensemble," referening the fact how it is basically the most well-rounded AI type that presently exists. It has the most varied surprises up its sleeves.
  • Added a new Simple Ensemble AI variant: Like the full ensemble in most respects, but minus some of the more esoteric ship variants. There's plenty going on here, but not quite so much craziness to discover as you explore.
  • The Starfleet Commander AI type has been removed, as now all the AIs kind of do what it was doing before. It no longer stands out as unique.
  • The Everything AI type has been removed, as it was kind of redundant now, and wouldn't have made for coherent gameplay anyhow.
  • Added in a completely untested new Thief AI type that was kinda-sorta defined previously but seemed to be missing, nonetheless.
  • Also added a completely untested new Zombifier AI type that uses a bunch of zombifying ships and other nasty things. It was kinda-sorta previously defined but again still seemed to be missing.
  • In general there were very few AI types removed, and instead they are all just a whole heck of a lot more vibrant, and we actually added a few.

Hacking changes

  • Science Extraction hacking will now show the total cost for the remaining science on the planet in the tooltip
    • Requested by Ecthelon on Steam
  • Hacking has been feeling a bit too easy these days, so include AIP when calculating how strong the hacking response should be for hacks against the AI.
    • The formula is now NewHackingResponse = oldHacking Response + (oldHackingResponse * AIPMultiplier * CurrentAIP)
  • Add the Sabotage hack
    • This will kill a random NormalPlanetNastyPick structure on a planet. Many people have asked for this.
  • Allow hacks to be done against planets, not just structures
  • Allow hacks to be done without a local hacker on the planet
  • Allow the AI to launch an attack against the player after hacking is completed
    • These can be set on any hack with an XML tag. So all the previous hacking mechanics can continue to function as usual, but new options are now available.
  • Mercenary Beacons can be done without a local hacker on the planet. They are also nearly instant to complete.
  • Hacking the dyson sphere in order to download a ship design SHOULD now actually work, although it works differently from before.
    • Rather than unlocking a new ship line in general (type Dyson Defender), it now adds a permanent cap of 2 more dyson defenders to whatever the hacking fleet is that just did the hack. So it's a way to buff up the particular fleet doing the hack with some sweet new dyson tech that you get to keep forever.
    • In general this can now serve as a model for other types of the same thing that we can do, although there's a question mark of course as to whether this actually works since we've not tested it. But it's neat and should be useful in general for the future.
  • The hacking for the dark spire wraiths now works like the dyson hacking.

Bug Fixes

  • Fix a bug in the entity hovering ui where it was incorrectly identifying energy overdrive as an attack penalty
    • Thanks to Democracy for the bug report
  • Fix a bug where the Zenith Trader (Traitor!) was allowing the AI to buy way too many goodies
    • Thanks to lots of people for reporting this, including Jannik2099 and Ovalcircle
  • Fix a null reference exception when handling GameCommands
    • Thanks to jannik for the bug report
  • Fix a problem where v-wings were having damage multipliers based on buildings lack of engines
    • Thanks to weaponmaster for the bug report
  • Correctly flag the "Download Dyson Sphere Ship" hack as unavailable after that hack has been completed
    • Thanks to Ecthelon on steam
  • Fix a bug where vengeance generators were warping in already vulnerable to damage
    • Thanks to WeaponMaster and zeusalmighty for the reports
  • Add an Objective for hacking the Spire Archive
    • Thanks to settemio for the reminder
  • Only seed one spire archive per AI
    • Thanks to WeaponMaster for the report
  • Spire Archive isn't invulnerable to all damage, meaning it properly dies after being hacked.
    • Thanks to Democracy for reporting.
  • Spire Archives now show on the galaxy map.
  • The Superterminal now explodes after the hack finishes, instead of using a kludgy and bug prone mechanism to prevent it from being hacked multiple times
    • Thanks to Lifestrider and zeusalmighty for bug reports
  • Fix a typo in the settings menu for multiple AI types
    • Thanks to coldrage101 for reporting
  • Fixed a minor bug where the HRF Raiders were never spawning because of a typo in their tag.
  • Fixed that issue with the fullscreen resolution not being settable in recent internal builds.
    • Note that there is still some issue that may make you need to alt-f4 the program after changing between fullscreen resolutions or fullscreen to not-fullscreen, but it then shows up properly after that. I expect an upgrade to the unity engine, due in the next month or so, will probably fix that one part. And that one part probably isn't new. But the new part that was broken is now fixed.
  • The game now properly unpauses itself after you close the escape menu, if it paused itself going into there.
  • Units that are stacked, or units that are in transports, now cost energy the same as they do when they are outside of their hosts.
    • Thanks to RocketAssistedPuffin for reporting.

Renaming And Visual Changes

  • Cleaned up all entity names, from in the past when they changed function (i.e LaserTurret to NucleophilicTurret).
  • Also cleaned up and standardised all the entity system names, and cleaned out a few that were redundant.
    • This should make it a bit cleaner to work with in future, as there's no weird cases of there being a WidowGuardian, which is really the Paralysis Guardian, but it shows up as the Widow in all the internal files!
  • The Widow Mine is now the Paralysis Mine, and the Grenade Launcher fleetship is now Grenade Launcher Corvette - seeing as it has the Corvette icon and all.
  • Sentinel Frigates are now Sentinel Gunboats.
    • Anything in future, like Lightning Torpedo Frigate will use the term Gunboat instead.
  • Fleetships are now called Strikecraft, and Starships are now called Frigates.
  • Space Docks are now simply called Factories, Mobile Space Dock is Mobile Factory, and the Starship Constructor doesn't exist at all now.
    • Both Strikecraft and Frigates come out of the same building.
  • Not a rename, but a recolour. Human Resistance Fighters and Marauders have a primary green that shows up better in game, and matches what it is in the lobby.
    • Thanks to TechSY730 for reporting.
  • Advanced Factory is now the Intra-Galactic Coordinator.
    • It's just a thing that increases your ship caps, essentially.
    • The ship_cap_multiplier actually works now in the new system. It won't increase the caps for anything with a cap of 1, though, just FYI. It also can't be used to reduce the cap.
  • Mentions of Shields such as the Shield Frigate, Shield Generator etc are all Forcefield now.
    • Apparently we were using both in kind of random places?
  • As Squads are removed, all the Strikecraft models are much bigger, with a single one taking up the same space the full squad used to!
    • In addition, things like Frigates, Command Stations, Turrets, etc are all bigger. Almost everything, really.
  • All icons in the game are displayed a bit higher above their entity. This gets them out of the way a bit, hopefully not too far that it's difficult to know what they're for.
    • With this and the above change, you can actually see the models a bit!

Ship Variants

  • Adds the "Harasser" variant of the MLRS Corvette.
  • Adds the "Porcupine" variant of the Pike Corvette.
  • Adds the "Ablative Troll" variant of the Ablative Gatling.
  • Adds the "Dagger" variant of the Raider.
  • Adds the "Gunbot" variant of the Autocannon Minipod.
  • Adds the "Velociraptor" variant of the Raptor.
  • Adds the "Stalker" variant of the Eyebot.
  • Adds the "Tripper" variant of the Sniper.
  • Adds the "Railpod" variant of the Sniper.
  • Adds the "Pulsar Punk" variant of the Pulsar Tank.
  • Adds the "Aggressor" variant of the Agravic Pod.
  • Adds the "Mirage" variant of the Space Plane.
  • Adds the "Hydra" variant of the Vanguard.
  • Adds the "Zapper" variant of the Inhibiting Tesla Corvette.
  • Adds the "Terrier" variant of the Spider.
  • Adds the "Molotov" variant of the Grenade Launcher Corvette.
  • Adds the "Ranger" variant of the Sentinel Gunboat.
  • Adds the "Medic Gunboat" variant of the Sentinel Gunboat.
  • Adds the "Absorber" variant of the Vampire Claw.
  • Adds the "Thief" variant of the Etherjet.
  • Adds the "Paralyser" variant of the Stingray.
  • Adds the "Cluster" variant of the Auto Bomb.
  • Adds the "Nanoswarm" variant of the Auto Bomb.
  • Adds the "Persuader" variant of the Parasite.
  • Adds the "Ripper" variant of the Warbird Frigate.
  • Adds the "Brawler" variant of the Assault Frigate.
  • Adds the "Devastator" variant of the Siege Frigate.
  • Adds the "Siphoner" variant of the Shield Frigate.
  • The Hydra is now the Vanguard Hydra, and there's a new Stringray Hydra type to keep it company.
    • The Stingray version is markedly more strong in the sense that it subdivides but doesn't have worse stats. It's a quick bit of variance for planets or waves that are replicant-heavy.
  • Also added a Parasite Hydra to round it out even more, although made them thankfully lexss frequent.
  • Added Ghost Grenade Launcher Corvette and Ghost Concussion Corvettes, to round out the ghost strikecraft category a bit.
  • A new Station-Keeping Assault Frigate has been added to the loadout of military and home command stations (2x each), and logistical command stations (1x each).
    • As with the pike turrets that all the command stations now have, this gives you some more defensive options without having a fleet or a battlestation around.
    • Unlike the turrets, these don't require any placement planning, since they are mobile and able to roam around and hit enemies. Seemed like this would get around a variety of frustrating situations that even having turrets would not solve.

New Variants For Starting Fleets

  • Added a new Cloaked Ark One variant, and this one is ONLY available via a new "Cloaked Fleet" (CloakedStartingFleet) that players can get in the lobby at the start of the game.
    • This offensive fleet is one of the first that players can choose from, and it's powerful and invisible and likely to make them feel quite powerful.
    • Led by the Cloaked Ark One, this has Raptors, Agravic Pods, Gunbots, and then Warbird Frigates.
  • Added a new Mugger variant of the Assault Frigate that gets parasitism (this needs to be tested).
    • This is ONLY available via the new "Parasitic Fleet" that players can choose at the start of the game.
    • The parasitic fleet in general is weak and small by comparison to others when it comes to direct firepower... but of course they create a bunch of zombies to work for them. Uh, and yeah there's a Botnet Golem at the center. So weaker might not be accurate after all.
    • Led by the Botnet Golem, these have 60 Parasites and 2 Muggers. This is by far the smallest ship cap fleet you can start with... until you start creating zombies.
  • Added a new Classic Fleet that players can start with.
    • This classic mix isn't good at any one particular thing, but is well-rounded against any foe. The forcefields just make things even better.
    • It's V-Wings, Fusion Bombers, Concussion Corvettes, and then a Forcefield Frigate, with the centerpiece being an Armored Golem.
    • This is a nod both to the first game as well as the classic starting loadout of ships in this game itself, which is now absent.
  • Added a new Raid Fleet for the starting player options, which also has a new "Agile Cursed Golem Ark" that is the Cursed Golem but with way faster engines.
    • The whole purpose of this fleet is being able to rapidly move around faster than any other purely offensive fleet in the game.
    • It also includes a new "Turbo Stingray" ship that is a faster version of regular Stringrays, and then Velociraptors and Daggers, which are normally already super fast.
    • All of these things share the same base (very high) speed except for the last and obligatory part of the fleet, Raid Frigates. These are able to move EVEN FASTER, and so can go off on their own away from the main body if you so desire.
  • Added a new "Doorkicker Fleet" as another starting fleet option.
    • Mostly focused on crowd control, but with siege frigates along to punch giant holes in large targets when required.
    • Basically this is the taking the idea of the Attritioner archetype, but giving one bit of counterbalance to it. Led by a black widow golem, this has MLRS Corvettes, Grenade Launcher Corvettes, Inhibiting Tesla Corvettes, and then Siege Frigates.

New Battlestation Variants

  • Revealer Battlestation
    • Can construct various structures on a planet, even if you don't own it. Also rebuilds structures from their remains. This Battlestation has a very powerful Tachyon Array.
  • Gravitic Battlestation
    • Can construct various structures on a planet, even if you don't own it. Also rebuilds structures from their remains. This Battlestation has a very powerful Gravity Generator.
  • Shieldwall Battlestation
    • Can construct various structures on a planet, even if you don't own it. Also rebuilds structures from their remains. This Battlestation has greatly improved shields that extend out around itself.
  • Engineering Battlestation
    • Can construct various structures on a planet, even if you don't own it. Also rebuilds structures from their remains. This Battlestation has very powerful engineering capabilities.
  • Ensnarer Battlestation
    • Can construct various structures on a planet, even if you don't own it. Also rebuilds structures from their remains. This Battlestation has a very powerful Tractor Array.

New Citadel Variants

  • Metabolic Citadel
    • Strong defensive structure, firing many weak shots that turn targets into resources on death.
  • Agravic Citadel
    • Strong defensive structure, fires bursts of high power Agravic Bombs.
  • Inhibitor Citadel
    • Strong defensive structure, fires bursts of shots that reduce enemy weapon output.
  • Paralysis Citadel
    • Strong defensive structure, fires multiple paralysis shots.
  • Parasite Citadel
    • Strong defensive structure, firing small bursts of bolts that zombify victims.
  • Interceptor Citadel
    • Strong defensive structure, packing multiple railcannons that shred fast moving targets.

Balance Tweaks

  • Tesla-class structures (Guardians, turrets, etc) now reduce incoming damage from far away by 99% instead of 100%. This allows the targeting code to identify Tesla units as potential targets (instead of ignoring them as if they were Invulnerable). Units in FRD (and minor factions) should now be able to actually attack Tesla turrets.
    • Many people have complained about this, including TechSY730 and Democracy.
  • Ark Energy Overdrive is removed for now. Find another place for it (likely in a changed form).
  • Sniper damage bonus requirement reduced from speed 1200 to 1000.
  • Sniper: Starting bonus multiplier 5x -> 8x.
  • Space Plane gets the damage resistance to anything beyond range 4600 instead of 5600 now.
    • Basically you have to be closer to it to do full damage. Also means that when using Pursuit, they try to stay beyond that.
  • MLRS units have half the shots per salvo, but reload in half the time.
    • Helps them retarget more often.
  • MLRS units get their damage bonus at 30% enemy hull remaining, instead of only 20%.
  • Vanguard, Pulsar Tank: Albedo 0.7 -> 0.3.
  • Vanguard, Pulsar Tank, Inhibiting Tesla Corvette, Grenade Launcher Corvette: Mass 0.21x -> 0.3x.
  • Vanguard: EngineGx 8 -> 7.
  • Raptors, Autocannon Minipods, Space Planes, Agravic Pods, Vampire Claw, Raid Frigate, Warbird Frigate, Eyebot, Stealth Guardian: Albedeo increased to 0.7.
  • Concussion Corvette, Sentinel Gunboats, Snipers, Siege Frigate, Tritium Frigate, Warbird Frigate, Tritium Guardian, Concussion Guardian, Plasma Guardian: Armour reduced to 40.
  • Concussion Corvette: Shields 2,800 -> 1,800, EngineGx 8 -> 14.
  • Vampire Claw: Armour 40 -> 70, Life Leech reduced from 1.5x to 1x.
  • Raptor: EngineGx 7 -> 10.
  • Raptor Hull: 2900 -> 1900.
  • Stingray, Etherjet, Metabolizing Gangsaw: EngineGx 7 -> 14.
  • Inhibiting Tesla Corvette only applies reload penalty to armour below 60.
  • Siege Frigate: Damage 2500 -> 25,000, spreads it among targets instead of hitting 10 for full damage, range 10,100 -> 12,000.
  • Grenade Launcher Corvette, Vanguard, Pulsar Tank (main gun only): Range changed to 4200.
  • Grenade Launcher Corvette, Vanguard: Speed reduced to 400.
  • Grenade Launcher Corvette: Hull 1,000 -> 1,400, shields 1,000 -> 1,600, EngineGx 8 -> 7.
  • Grenade Launcher Corvette, Inhibiting Tesla Corvette: Armour increased to 110.
  • Inhibiting Tesla Corvette: Shields 2,000 -> 3,000.
  • Etherjet: Damage 30 -> 20.
  • Fortified Tesla Turrets have a similar damage bonus to Ablative Gatlings now.
    • Makes them a bit more interesting, and also some room for other changes.
  • V-Wing: Hull/Shields changed from 500/3500 to 2000/2000.
  • Pike Corvette: Armour 50 -> 70, range 8,000 -> 6,000, shields 200 -> 800, speed 700 -> 500.
  • Eyebot: Hull/Shields 1,000/1,000 -> 800/800, armour 50 -> 60.
  • Agravic Pod: Armour 50 -> 70.
  • Dark Spire get a bit less energy if they're the ones that killed something.
  • Nucleophilic Guardian: Armour 90 -> 50, albedo 0.7 -> 0.3.
  • Concussion Guardian: Hull/Shields changed from 20,000/20,000 to 10,000/30,000, EngineGx 12 -> 14.
  • Spider Guardian, Paralysis Guardian: Speed 1,400 -> 400.
  • Spider Guardian: Range 15,000 -> 8,000, Armour 90 -> 40.
  • Paralysis Guardian: EngineGx 13 -> 7, Armour 90 -> 110, range 8,000 -> 5,000.
  • Grenade Launcher Guardian: Albedo 0.4 -> 0.3, EngineGx 14 -> 7.
  • Pike Guardian: Armour 50 -> 70, EngineGx 14 -> 7, range 8,000 -> 6,000.
  • Tractor Guardian: Albedo 0.7 -> 0.3.
  • Gravity Guardian: Albedo 0.7 -> 0.4.
  • Vampire Guardians now have Cloaking, but attack half as fast.
    • Stealth Guardian now has a friend that it shares a group with.
  • Reintroduce the Plasma Turret.
    • Closer to Heavy Beams than the rest.
  • All Turrets except Beam and Plasma have 10% lower health, but 15% greater damage in exchange.
    • Turrets felt like they slap the enemy to death slowly while outlasting everything. This is minor, but speeds it up a tad.
  • Slow the increase in cost for Science hacking multiple planets
    • Thanks to Ecthelon on Steam for the suggestion
  • Minefields are now all one use. Damage increased for normal and Area mines to compensate, Paralysis mines have a longer effect as well.
    • This fixes numerous problems with them, including somehow surviving and the AI being confused, being repaired mid-combat, overkill or Military Command Station boosts having weird effects, etc.
    • Also lets us put damage bonuses on more cleanly without worsening any of those previous problems.
  • Marauders have a per-outpost cap on the Raiders they can produce. Unfortunately, stacking causes raiders to lose information about their spawning outpost. As a backup, also introduce a global cap on the number of raiders that the marauders can have.
    • This should dramatically tamp down the power of high intensity Marauders late game, especially in sandbox games.
  • Reintroduce the Hunter/Killer.
  • AI Co-Processors reduce AIP by 20 more when all destroyed.
  • Player Golems are much weaker now, but can be upgraded alongside Arks. AI Golems have minor upgrades.
    • With enough upgrades, the player ones will match then surpass their previous forms.
    • Initial testing of Golems as Flagships was...amusing.
  • Thanatos starts with the zombifying weapon already usable.
  • Arks are a bit faster, have a bit less health and a bit more damage.
  • Spire Frigate can be upgraded as well, has some weapon and health changes and has three versions of itself now.
  • AI Forcefield Guard Posts and Forcefield Generators are now actually in use again, as rather rare finds.
    • Connected to this, AI Turrets are in a tighter spread around whatever they defend, so they actually sit in the forcefield instead of uselessly outside.
  • AI Overlord Phase 2 should actually come after you on that planet now.
  • Mercenaries spawn at Mark 1 now, and level up with the players tech level.
    • They're also a bit weaker to compensate for that.
  • Carrier Frigates are, unfortunately, gone. For the player, Drone producers must be a Fleet Leader, instead of a random Frigate or whatever in it, to avoid having nested fleets.
    • Potentially it can return in a fashion as a Fleet Leader in future.

Crippled Status

  • Battlestations and Mobile Fleet Flagships are now automatically something that cannot ever die, per se -- instead they become "crippled" when their health is less than 10% of its maximum value.
    • This solves a whole heck of a lot of problems that we otherwise have, such as where ships should rally to, and it also avoids the "corpse run" problem.
      • If there are lone golems that players are capturing that die to remains, or other similar things that are not fleet leaders in that way, then those can still be a source of corpse runs, so it's not like that mechanic went away. It's simply not being a major focus for these types of ships.
      • For a while, we were having things like Arks (which fall into this new category) automatically warp back away to some sort of safe space, but that's no longer a thing, which is good.
    • Their weapons and other systems all go offline when they have less than 10% health now, which is actually a pretty new limiter on them since it gives them only 90% of their health in which to work, although there's no longer the risk of them dying if you're not paying attention. But for balance purposes it's worth noting that we may wind up needing to beef these out slightly.
    • Enemy ships will consider them an uninteresting target if they are already crippled. It's possible that actually shots won't do any more damage when hitting them and they are crippled, which if so is a bug I need to fix later. But them not bothering to target the enemy seemed to be the most important thing for now. If you have a savegame with shots not damaging these ships, then please let us know.
    • It's also possible that there will be some edge cases where these things actually DO die rather than being crippled, in which cases repro saves will be very welcome.
    • Mobile fleets with a crippled centerpiece now have an effective remaining cap of 0 for all the ships that factories might be sending to them.
      • This makes it so that factories won't supply new things for them anymore until there is an un-crippling of the centerpiece. Otherwise there's no reason to bring said centerpiece home for repairs, it's just this strange invincible vessel to which lots of ships rally.
      • The metal spent on partial construction of ships is not refunded, but rather is stored at the fleet and as soon as the centerpiece is un-crippled things will come back online and resume wherever they were.
    • Note that if any ships are set to reverts_to_neutral_on_death="true" in xml while being of one of these two types, that really won't matter because they should never die. So those should probably be removed.

Costs of Repair vs Construction

  • We recently (in this giant build group) redid how the repair costs were working for ships, and it's unclear how that changed things cost-wise compared to what the costs used to be (the costs as they used to be were super unclear).
    • What IS clear is that we changed it to just be the equivalent to rebuilding the unit, aka repairing it 50% is the same as building half a new unit. This was by design and we didn't think much about it, but it is definitely something that was eating through metal prodigiously.
    • What's also clear is that we were charging this FULL amount for repairing shields, health, and engine health -- ouch. So really if you were at half engine health, half shield health, and half hull health, you'd spend 150% of what it would cost to just build a new unit. Not good! We'd much rather encourage repair in general.
    • We now have a variety of dials in the xml external constants to affect the percentage of the full metal cost that it will cost for various repair types:
      • balance_repair_cost_multiplier_for_hull_points: 50% cost for repairing hulls.
      • balance_repair_cost_multiplier_for_personal_shields: 20% cost for repairing personal shields.
      • balance_repair_cost_multiplier_for_bubble_forcefields: 75% cost for repairing bubble forcefields.
      • balance_repair_cost_multiplier_for_engines: 10% cost for repairing engine damage.
    • This should make things quite a bit less constrained on the player income-wise (it was feeling pretty tight at certain points in the early game because of your much larger forces), and also encourages reuse rather than just refleeting.

Costs For AIs Purchasing Things

  • There is a new field, cost_for_ai_to_purchase, which is an integer that replaces the old_strength values.
    • This is now what AIs use to purchase units, and it is separate from how strong the unit is seen as.
    • This is problably way out of balance for now, but it at least is something we can tune directly from now on.
    • "Strength" in the game is now properly only used for evaluating, well, how strong something is. Aka how the AI acts, or as information for the player.
    • This is NOT something that goes up by mark level anymore, unlike before, and that's by design as well. The AI should be able to afford equal numbers of ship type X on a mark 1 or a mark 4 planet. That's how things were in AIWC, but it was oddly not at all like that here.
  • There are a bunch of other related changes to making the game use the CostForAIToPurchase field instead of the Strength field -- and remember that this is on the TypeData rather than the ForMark data, and that this is by design.
    • This is probably buggy as eff. There's a ton of code in this area, written by a bunch of people over a long period of time. So AIs will probably wind up making some pretty strange purchases for a little while, until we find and fix whatever bugs there are, aside from the inherent data issues.
    • Nonetheless, now was the time to go ahead and make this change, because it was a fundamental deterrent to us being able to balance what the AI builds separately from how strong the AIs and players view a unit as being. And that was one primary driver behind all things being a very similar cost-to-benefit ratio, at least on paper... and ongoing headache for Puffin, with that. The headaches won't end because of this change alone, but they will shift to a new sort: balancing each of those two things independently of one another ("does the strength stated for that unit seem to match how scary the AI and players should think it is?" and "does that cost an appropriate amount for the AI in most contexts, or is it too cheap or too expensive for them?").
    • But in the short term, this will be extra complicated by the fact that the math probably has some bugs in it because probably some things that should be using the new AI budget stuff are still using the strength data. I would be shocked if that's not the case, despite looking at it very carefully until I was cross-eyed.
    • And then the other question of "how much should this cost" is now out of date compared to what the strength values were, so even if the math is all perfect we're going to have bonkers data for a bit. That part I do leave to Puffin for the most part, sorry about that. ;)
    • As a general design note, both the players and the AIs have been having fewer ships than I would prefer, thus far. For players it was because of the way the ship caps were -- pre-fleets. For the AIs, it was because of the way they were being "charged more" for higher-mark stuff when looking at their own budgets. At the start of the game, a mark 3 planet and a mark 4 planet should have the same relative amount of budget spent, but one gets better stuff from it. Previously, unlike AIWC, the mark 4 planet was getting charged a premium and so felt anemic by comparison to the mark 3 planet.
      • This may in turn wind up with the AI having waaaay too many ships for a while, but if we pack those into the guard posts as contents that are not deployed yet, that should have zero performance impact. And it will be good for the humans who suddenly have a lot more firepower at their disposal. Overall the goal coming up is for everyone to have a whole heck of a lot more shooty things, but having them more spread out so that the mega-battles aren't individually any larger than they are now. It will take us a little while to get that part perfect, so please bear with us.
  • TryToSpendBudget_CPA has had some updates to how it deploys ships from itself, since the way it stores ships is different from the start. This may or may not cause demonic fumes to erupt, so let us know.
  • UnlockShipLineForAI() has been removed, as AIs don't work that way anymore, either.

Achievements

  • Add Achievements for winning a game with each AI type enabled
  • Add Achievements for winning a game with some of the Minor factions enabled
  • Add Achievements for winning a game with various galaxy sizes
  • Add Achievements for controlling a given number of planets in a game
  • Add Achievements of the form "Have > X Metal/Energy/Hacking points"
  • Add Achievements of the form "Kill > X units", "Lose > X units" and "Kill > X && Lose > Y units"
  • Add Achievements of the form "Have a campaign X hours long"
    • Note that the above types of Achievements can be added to the game with only XML changes
    • TODO: Add a UI to show the player which Achievements have been earned

Science/Tech Changes

  • Complete rework of how techs function. They are no longer tied to individual ships like before, but rather there are actual technologies that are named and that benefit a variety of ships.
  • Ark Upgrade Points and Destruction Points are both confusing and have been removed from the game as a concept.
    • But never fear, something very similar with a clearer name and purpose is being added back: Fleet Experience Points.
  • The initial techs have been added, and applied to ships and turrets and whatnot.
    • This is, at best, a first pass for now. However, there are are present 14 distinct techs that you can upgrade that are more ship-abilities-focused, and which are generally shared between strikecraft, frigates, and turrets. This is the general intended design, even if exact matchings aren't correct or ideal right now.
    • The costs here are also potentially bonkers for real-world use. Additionally, there is a maximum number of times a given tech can be researched, and that is usually set at 4 right now, kind of arbitrarily. That does NOT mean that the max tech level of a ship is 4, however.
      • Ship tech levels are a combination of all the techs that benefit them (some have more than one), as well as any upgrades to the tech level of their specific fleet. So some are much easier to get to a VERY high mark now, whereas others are almost impossible to do.
    • There is now a new UpgradeMeFromFleetOnly tech that isn't shown on the menu, but which we use in cases where we want to denote that this IS something we can upgrade, but only at the fleet level rather than the ship level.
      • This is used for things like command stations, engineers, economic production units, and forcefields. That makes these things a lot more location-dependent in terms of how high quality your ships of those sorts are. This should be pretty interesting, actually, and it takes them out of contention for the main science upgrade costs more.
    • Overall the goal here is fewer science upgrades happening, but each one having a much larger impact. We may have gone too far in that direction with this first setup of the data, but at this point it's all an xml-based issue.
    • Note that all of these techs are based around upgrading all the ships that you have that subscribe to this tech via tech_upgrades_that_benefit_me, and that crosses fleets.
      • This should benefit mercenaries, although that hasn't been tested.
      • We did base this loosely around Puffin's classes/roles document, but this is meant to be... slightly both more and less granular than that document, and to be multi-categorized in many cases. So your document is still relevant (mainly for fleet design), but it's just semi-related to this specific use.
    • It's also worth noting here that some ships/turrets/whatever have multiple tech_upgrades_that_benefit_me, and those are going to go up in tech quality FAST by comparison to their peers. Assuming that players unlock techs synergistically. So some of the ones like the Light, Heavy, etc, might need to be a lot more expensive than they are right now.
      • As noted already, the balance here is a bananas basic proof of concept right now, and I'm sure broken in a thousand ways. The only purpose of me throwing this together at the moment was to give a proof of concept unified design philosophy to look at, even if details are really wrong. This gives Puffin and others a chance to actually make it make a lot more sense while I move on to work on other things.
    • Note that the EXP concept doesn't come into play at ALL with these sorts of techs. These are purely science costs. The EXP is fleet-based stuff instead, and may not cost any science at all (fleets that auto-upgrade would be nice). But also spending some science on a specific fleet's upgrading would be nice, so that's something that will likely be possible. How that works at the planet level is still TBD, I have two different possible models for that and haven't been able to choose between them yet.
    • Also please note that for an individual ship/turret/whatever type, there's no risk of it going above its max mark level, which is either 7 or is explicitly defined as something lower, or is markless. If it subscribes to 2 techs that each have 1 upgrade, it would naturally be mark 3, unless it's capped at mark 2 in which case it will sit at mark 2. And if its fleet is also upgraded 3x, then it would be mark 6, unless it was capped lower.
    • A general note: This overall tech system has way fewer decision points than the old one, which is good because that makes them actually something that you can contemplate. However, as a byproduct of that, you'll often get some secondary stuff upgraded that you cared less about, and that actually provides opportunities for you to make new use of them in interesting ways if you so choose. Also also, you're a lot more likely to have really wide mark level disparities between parts of your empire (different planets and fleets), which is more in keeping with the first game albeit from a completely new angle. This is exciting.
    • Another general note: the overall ship caps per fleet will only be whatever they are, but the idea is to have larger effective ship caps for players by the late game because of a proliferation of fleets. In some cases in the late game you'll also have some fleets that are incredibly technologically superior to the AI, and other fleets that are incredibly behind the times. How this exactly plays out will be interesting to see from players, but in a theoretical sense there's nothing wrong with that; we may just have to adjust some balance dials over time to keep things from being TOO extra weak or strong, and/or to make the AI really reactive to overly-advanced forces if those exist. Here again this is an opportunity for more gameplay, rather than a real challenge in a negative sense.
  • The tooltip for science has been improved to be more accurate and also more descriptive:
    • Spend Science to unlock higher-level units and structures. It is gained primarily by claiming new planets and holding them for a while.
    • There is a limited amount that scientists can learn from what they find in each system, so you'll need to keep finding new research targets for them.
    • A single ship type can be upgraded by multiple tech upgrades as well as from its parent fleet gaining experience, so be sure to consider your options carefully.
    • More techs will appear in the tech sidebar as you capture fleets with ships that can benefit from them.
  • The tech sidebar is once again functional, and allows for you to unlock techs that benefits various ships that you have.
    • It looks and works a lot more like the hacking sidebar instead of the build sidebar, now, since the type of data it needs to show is very different. This makes it a lot more text-heavy and showing related costs and the mark levels of ships in a really clear and concise fashion. Yay! It does mean no real icons on here, though.
    • The tooltips for techs that you can upgrade are also now completely redone, and it shows you which ships will benefit as well as how many of them you have. It doesn't show you the mark level of the ships, because you might have several different mark levels of each ship type since they may be upgraded by fleet upgrades.
    • This was certainly needed in order to make the game all that playable in 0.850, but in terms of why we did it right now versus after the build menu, it's mainly because this was simpler and was therefore a nice dry run for the more complicated menus.
  • Ok! So we've already learned quite a bit about techs and how people will wind up using them. Clearly the new system works well, but is going to need refinement; chief among that is just how many upgrades a given line can grant.
    • One of the other things that was immediately most clear was that "Ark" as a technology was really not cutting it. This was way too broadly useful, and "Battlestation" was almost as bad.
    • First of all, these need to be more pricey, but some Arks should cost more than others, and some Arks should share techs, but not ALL Arks.
    • With that in mind, there's a new schema in place for various Arks and Battlestations broken out as follows:
      • Ark Spirit (most basic stuff), Ark Heart (happy helpful stuff, less dangerous), Ark Armor (beefcakes you need to really pay for), Ark Fist (holy smokes these things are powerful, and thus expensive, and only have 3 marks rather than 4).
      • Battlestation Shelter (protection-oriented), Battlestation Hand (grabbing or slowing enemies), Battlestation Architect (engineering or construction).
    • And it's worth noting that Battlestations are really oriented into those as well as the previously-were-fortresses Citadels that are way more combat-oriented, so splitting those also matters:
      • Citadel Executioner (kill a lot of things), Citadel Protector (yeah, hurt them, but protect other stuff as the primary), Citadel Consumer (eat or steal the enemies).
    • And then there's the Spire Frigates, which really don't need to be lumped in with Arks or Battlestations or Citadels. I'm sure these will expand in the future, but for now we just have the new "Spire Core" (for all three types of Spire Frigate), and they're super expensive but can be upgraded 4 times.
    • The overall lesson here is that we CAN have more techs than we maybe were once thinking, particularly since they only show up conditionally. This also makes the Arks and Golems and so on a lot more unique in terms of how well they are upgraded (or not).
      • This will get more crowded in the tech tab with time, unfortunately, as you unlock a lot of ships. For that reason they are now down at the end of the list below all the actual main ship lines.
      • This may also hint that we want more tech lines in general for the other ships, and/or that they need some changes to their science costs, but we'll cross those bridges when we come to them.
  • The science intel message is now more brief in the sidebar, and more informative in the tooltip. Now everything fits.
  • On factions, there is now a InheritsTechUpgradesFromPlayerFactions serialized bool that should be set to true for any factions that the designer wishes to recieve all of the upgrades for the player techs.
    • Aka, if two players each have upgrades to Tech A, then the faction will get the largest of the two, not the combined value of them.
  • Got rid of the (very elegant, sadly) "tech view" version of tooltips that showed all the ways a ship would be upgraded by gaining a mark level.
    • That was overwhelming as an amount of information, but also there's just no place where we'd actually be asking you to see that anymore. Now you upgrade techs that hit a bunch of ships at once, and so this per-ship-type comparison stuff just has no place in there anymore.

Vision Changes

  • Complete vision rework. Planets are all now either
    • Unexplored: You have no vision of what is on this planet. You also cannot send ships to or through Unexplored planets.
    • Explored: You can't see exactly what's on the planet, but you can see who owns it and the sidebar works. Chris has a TODO to figure out how to show stale data/interesting visuals when you try to look at an Explored planet.
    • Watched: This state means "Explored and you have ships there". You can see what's on the planet, but when you no longer have ships there the planet will go back to Explored.
    • Permanently Watched: you always have vision here
  • At the beginning of the game, all Player Homeworlds and adjacent planets are Permanently Watched, and all planets 2 hops from a player homeworld are Explored.
  • Capturing a planet or killing an AI command station automatically Explores all adjacent planets
  • You can also Explore a planet by hacking an unexplored planet, as long as you have an adjacent Explored or Watched planet (otherwise you could just explore random planets around the map which seems less interesting to me)
  • You can Permanently Watch a previously Explored planet by hacking (but the AI will launch a small counterattack at you when you do so).
  • The game now tracks the specific gamesecond that entities were created, and when they entered planets, versus "how long ago."
    • There are helper methods for getting the familiar "how long ago" data, however.
  • Now that we know the last gamesecond we had vision of a planet, and the gamesecond that ships entered planets, on planets where we do not have current intel we are instead showing the effective last-known data on the sidebar, as well as actually showing the ships visually (through the distortion), even moving around if they are.
    • This won't show any ships that have been more newly added to that planet, though, and the sidebar notes that. So there might be a huge hunter fleet moving through there and you'd have no idea, for instance.
  • For planets that are completely unexplored, you cannot directly send ships there anymore, nor can you select it on the galaxy map or send your view there.
    • It IS still possible for your ships to path through completely-unexplored planets, for the time being, however.
  • Trying to make it so that player ships are completely unable to pathfind through unexplored planets is rather more than a bit of a nightmare. With that in mind, they are now simply disabled if they wind up going into unexplored space for whatever reason.
    • We can make this more sophisticated in the future, but for now that should handle anything exploity.
    • Players can use various tricks on the sidebar to click to the fleet leader heading through unexplored space to see such a planet, but they'll wind up seeing nothing there, so they gain very little. And meanwhile, the ships of the player are unable to shoot but still able to move, and enemies are able to shoot and are completely invisible to them, so that's... quite a bit of "fun."
    • Main thing we probably want to do at some point is get player ships to try to prefer not going into unexplored territory if at all possible.
    • Edit: nevermind, player ships should not be able to path through them at all. So yay! But if they do, they'll be disabled.
  • The "explored" status for planets has been split into "explored by natural means" and "explored by distant hacking."
    • This mostly doesn't matter and isn't something we're making a big deal about in most places. But using spy nanites basically is no longer a way you can expand how much your empire gains in vision every time you capture a planet.
    • The "explore next to explored" logic basically ignores stuff that was spy nanites. Maybe there should be a conduct later that makes it not ignore that, since that ALSO would provide some interesting strategic options, but frankly for now that seems like overkill. We shall see.
  • When you don't have vision of a planet, there is now a fancy distortion effect that is part grainy-tv and part slow-matrixy-refraction.
    • There's not a way to disable this effect, because it shouldn't be fast enough to make anyone nauseous, and there's no real point in looking at planets that you can't see anything at, anyway. This just makes it clear why you can't see those planets (the sidebar says no vision, but why did all the ships just disappear?)

"Hard Mode" For Scouting

  • Added a new "Scout Adjacent Only" conduct, with the following description:
    • TLDR: This is harder and will make you take a lot of planets. For advanced players only.
    • Details: Normally when you capture a planet, all planets adjacent to ANY explored planets become explored. Unless the map is very narrow, this causes you to get exponentially more planets you can see as the game goes on. Even further than that, there is a minimum number of planets it will explore for you when you take a planet, depending on the number of planets in your galaxy, so that snake maps and other really narrow maps aren't unplayably hard.
    • With 'Scout Adjacent Only' enabled, it tosses all that out the window. Instead it just explores any planets adjacent to the planet you just captured. This will make snake maps almost impossible to play (so that's a bad combo), but on maps with more cross-connections it can lead to... a certain added strategic challenge. This still seems masochistic even in the best case, but have fun with that if you want.

Removed/Revamped Ships

  • Science Labs, Hackers and Scouts are removed. Scout functions of the Sentinel Frigate and Sentry Starship are removed.
  • Sentry Starships are now per-planet cap, cannot use wormholes, are built directly (like turrets) and die to remains.
    • They're effectively Decloakers from Classic, but far more convenient.
  • Engineers are per-planet cap, cap reduced significantly and can't use Wormholes.
    • The new Combat Engineers are able to use Wormholes and are a type of Strikecraft instead.
  • Mobile Space Dock and Mobile Builder are not unlockable or buildable, and are instead capturables.
  • The Mobile Builder is now the Basic Battlestation, and is capturable.
    • And now there are actually like 5 variants of this, thanks to Puffin.
  • The Mobile Factory is now the CombatFactory, and is capturable.
    • And there are several variants of this, too.
  • The Fortress is now a form of Battlestation called Citadels.
    • And there are several variants of this, too.
  • The Remains Rebuilder has been removed, and the RebuildingRemains metal_flow has now been granted to all of the player command stations and the player mobile builders. It's no longer something that is assist-line-distance-based, nor is it something that requires a dedicated unit to run around doing things with.
    • This is one of those streamlining bits that people have requested for a while, but Chris in particular was noting that engineers and rebuilders need to be two separate functions (and they do). But making this instead essentially work like claimables and "just happen" solves the issue that people were complaining about without getting into territory of making the AI for the engineers likely to be bonkers.
    • Later we will need for all of our Battlestation types to have this, most likely, or things will get funky at times. This last is a note for Puffin.
  • Colony ships have been removed from the game, since that was a level of indirection that was not needed.
    • Similarly, hackers are gone, as are mobile builders in the classic sense.
  • Design Template Servers in the codebase are now gone. The concept of warheads, in the codebase, is now gone.
  • Starships are now called Frigates, including in the codebase itself. Docks are now called Factories in the codebase.
  • Golems as a standalone thing (for players) are now gone, as are Arks. They are now combined into being the Mobile Fleet Flagships. They are still called golems and Arks, but they're the centerpieces of your fleets at any rate.
  • Really key new limitation for drones, for the sake of sanity and not having nested fleets. This really only applies to player ships, in the main:
    • The drone producer must also be the fleet leader. So if we're talking about a player ship, it needs to be the Battlestation or Flagship of a fleet, and not something like a random Frigate as part of it.
    • On the AI and NPC sides, they don't really use fleets the same way normally, so anything that is a drone generator just becomes in charge of a new Drone fleet type.
    • This is probably going to be the source of some "fun" bugs. It will start spewing errors like crazy when this happens (once per second per ship that has this issue during gameplay), if it happens. It's possible to set this up with bad xml, basically.
  • The gameplay settings for automatically building remains rebuilders and setting them to auto-FRD are both now gone, since so are remains rebuilders.
  • The gameplay settings for "brave scouts" is also now gone, since scouts are also being removed and rejiggered.
  • Design Template Servers have been removed. They were not exactly exciting, and they don't make sense in the new method of AIs working with unlocked ships.
  • Schematic Servers (formerly ARSes) have been removed. Those also no longer make sense in the brave new world that is the new setup for fleets, etc.
  • The idea of CorruptedAIDesigns has been removed, as that was something that people weren't really using and it doesn't fit well with the new approach to AIs and fleets.
  • A bunch of stuff relating to Golems the way they used to be, including the entire Broken Golems faction, has been removed.
    • Golems are now another form of Ark, basically, and are capturable in that fashion.
  • Metal harvesters are now markless, rather than being upgradeable. This solves an issue with them being funky upgrade levels on enemy planets, and in general the ability to upgrade them is something that I was iffy about in the current system anyway. It was likely to be too powerful.
  • The home forcefield generator, which has existed since the first game as a last-ditch tool that you have until you lose it, is now something that you can rebuild.
    • It's also now markless and has its stats more directly set, so that you definitely never get more than one. It was kinda funky having it be mark 2 in this game from the start, and it also led you to having a cap of 2 instead of 1.
    • The whole purpose of this is so that you can rebuild it if it dies, since you don't otherwise inherently have access to any forcefield generators on your home planet at all, now. You have to put a battlestation or a citadel there in order to get a forcefield beyond the first, and depending on your playstyle you might choose not to do that.

Capturing Planets

  • So long as you have a mobile fleet leader on a planet with no command station (enemy or otherwise), you can now capture it like you would have previously done with a colony ship.
    • Aka, just take any of your golems or Arks over to the enemy planet and destroy their command station and you're immediately ready to set up your own. Boom, simpler.

UI Changes

  • Player profile stuff relating to choosing a default Ark type is now removed under the hood. It hasn't been on the front-end for quite some time now.
    • Note that a lot of the stuff with Arks having a story and a portrait image are thus now gone, although again this isn't new on the front-end. Arks simply have a new role now.
  • You are no longer asked to pick a Chief Adviser at the start of the game for your profile. That was a lot of confusion an un-needed choice on something rather trivial, and got in the way of getting you to the actual game.
    • Now it just has a screen for profiles that asks for a name and your default colors and that's it.
  • In the lobby, you can no longer select a starting bonus ship type OR a starting Ark for your faction as a player. Neither of those make any sense anymore. Now there's something new:
    • The game now lets you choose from special starting fleets, of which at the moment there are 5 handcrafted ones. The player can choose which one they want in the game lobby, just like they could with Arks.
  • "Conducts" are now able to, and in fact required to have, a description.
    • They also now have tooltips in the lobby, which show these descriptions, thus explaining what the heck they do.
  • The conduct for "start with planets explored" has been removed, as that's really cutting out a core part of the game now.
    • The scouting being so much more automated now kind of makes it a bit different from other games where you can turn off fog of war. Despite the first game having the option to turn off fog of war, that really takes out the entire flow of the game when it comes to this game.
    • Scouting isn't some hassle thing "that you have to do but might want to skip" anymore, but now is part of the reward structure for capturing planets, and so turning that off just would have... a lot of balance issues, among other things.
  • Added the following description to the Experimental: AI Civil War conduct, which is the only pre-existing conduct currently remaining. This may or may not be fully accurate:
    • If there are multiple AI factions, they all hate each other and will fight each other. They still hate YOU, too, but all this chaos and infighting is assumedly to your beneit. Then again, you might just find yourself in the crossfire of AIs who are getting more powerful more rapidly due to aggroing each other... so it's anyones's guess as to how long you'll last.
  • Working on making the tooltips for ships substantially more brief while still conveying the important information. Some of them are getting ridiculous for sure.
  • Added a new type of control for our settings menu, which is an integer slider. This is preferable to the textbox or dropdown for some cases.
    • We're now using that for the auto-build engineers, which also defaults to 2 now instead of 0.
    • We're also now using that for the various volume controls, which were inexplicably textboxes before.
    • We're also now using this for the minimum autosaves to keep, and the autosaves interval.
  • When planets are explored via you having just capturing a planet or whatever, it now shows a message log entry saying what planets were discovered and how many of them there were. This way it's clear that scouting is even happening!
  • display_name_for_sidebar has been added for entities, as it lets us give a more brief name to appear on the sidebar while still having a fuller name in tooltips.
    • This is optional and will just use the full name if it needs to. But if the sidebar is having bad wrapping of some text, then this should be filled with something shorter. Case in point is the home forcefield generator.
  • There used to be some logic about automatically opening certain windows when you selected certain kinds of ships (build menu when selecting command station, science menu when selecting science lab, etc), but since so much of that is all centralized or otherwise non-ship-related now, or all related to centerpieces, this just led to the UI kind of oddly seeming to do its own thing at times now. This has been removed.
  • The tooltips for factories now show which fleets they are supporting, and what the status is of all the individual line items they are building for that fleet. This is super satisfying to just watch, turns out.

Intel Tab

  • Something I talked about on the podcast is an new form of objectives, which is an idea that I've been refining since then (and had already been prior to then).
    • However, the "objectives" on the sidebar as they stand right now are not something I want to get rid of at all (most of them), given that they are kind of a "todo list of things you might want to do," and that's a pretty important tool to have.
    • With that in mind, the Objectives sidebar has instead been renamed to Intel, and over time we'll probably take out some things like the beginner tips and the primary objectives and so on. For the primary objectives we'll likely just recontextualize the same thing, but the beginner tips we'll probably fold into the new objectives (actual objectives system, separate from this intel system).
    • All of the really time-consuming-to-add and detailed "objectives" stuff about where we found things to capture and hack and kill, and where we should be scouting, etc, is all going to stay. It's just under the name "intel" instead, now. Really, that's what it is: information that lets you make decisions yourself, be that diverging from your main objectives or defying them or whatever else.

Build Tab

  • The "Direct Build" sidebar has been completely reworked from scratch.
    • It's no longer based on icons and tiny buttons, but instead has much larger buttons in categories. This may lead to more scrolling in some cases, but it also should be way more legible AND in general the player should have fewer things that they can build at any given planet unless they've stacked a lot of battlestations and citadels there.
    • Each line item not only shows what type it is, but also has to include what fleet it goes with -- so if that's the planet fleet, or one of the battlestations or citadels, that is relevant.
      • Why is this relevant? Well, those things can be upgraded independently, for one. And for another note, it's possible that you might choose to move a battlestation or citadel to a new planet, thus making all of their units on this planet stop functioning. So it does play into the strategy if you plan on moving around your battlestations and/or citadels (as you likely will).
    • These also now show the cap directly in a 0/3 fashion or similar, with it showing how many have been built out of how many are possible. It's possible that you might have more built than are possible to build, which it will show properly, but with a red warning.
    • It also more directly shows the cost for construction -- super useful -- and grays out the text of any entities that you have already built to the full cap so that they are not so noticeable.
    • This whole setup is really geared around having many fewer TYPES of things that you can directly build at a given planet, and that's the intention for the long term. We don't really want dozens of options here, but rather a smaller and more interesting selection that you can build from contextually depending on the planet.
    • At this point you can actually construct new direct-placement units!
  • A whole bunch of changes have been made to the way the tooltips look in build mode for entities, and also to how things are hovered-over in the build menu and galaxy in terms of what highlights, when.
    • It's stuff we'll refine further with time, but if something seems off, please let us know.
  • When a Zenith Trader is visiting, you'll see a bunch of stuff on the sidebar under various categories, noted in pink as being from the Zenith Trader.
    • This is different from past versions of the game where there was a specific category for all the Zenith Trader stuff regardless of what its function was. This actually makes it a lot easier to find things by function, particularly if the amount of wares on offer goes up a lot in the future.
    • For things like the Station-Keepers (Chained Dark Spire Eidolon), there is now a per-planet cap higher than 1 for these. That's pretty nifty, and it works!
    • Note that even if you don't have the metal for these projects NOW, while the trader is visiting, you can start the projects and pay for them over time. This is as before and is by design. The UI might be a bit confusing on this, not sure.
  • In the build sidebar, turrets and "other defenses" have now been properly split out. Before they were all kind of mixed together in "defenses," which got confusing.
  • Sentry Frigates are now part of the Station Keepers sidebar instead of Other Defenses.
    • This is meant to be the case for anything that is mobile, essentially.

Hotkeys

  • The hotkey for opening the tech tab now only opens that, versus opening that or the hacking tab contextually.
    • Given that the docks tab is gone, the build hotkey now only opens the build sidebar directly as well, kind of implicitly.
  • There are now separate hotkeys for opening the hacking (H) and fleet (R) tabs.
  • The "split selection" keybind that was previously L in this game and the original is now semicolon.
  • The "Unload Transports" (U) hotkey has had its description reworked as follows:
    • Any mobile fleet flagships that you have selected will immediately unload any ships they are presently transporting.
  • Added a new hotkey (L): Load Transports
    • Any ships that you have selected which are part of a mobile fleet will immediately get inside their flagship for transport if their flagship is on the same planet.
    • Note that the need for this to be separate for unload is that it will be common to have partially-loaded transports and you don't want to get into funky toggle situations with ships getting in and out when you really meant "keep getting in" or "keep getting out."
  • The keybind for "select all scouts" has been removed, since scouts are removed.
  • SelectNextUnitType and SelectPreviousUnitType have both been removed, as they were buggy like crazy in general, and also don't really make all that much sense in the new workflow of things.
  • Trigger Current Master Menu Action 1-12 are now gone as hotkeys, as they only worked in the escape menu (since the rest of the master menu was gone as of over a year ago) and it was using up a lot of hotkeys for something not all that useful anymore. Once upon a time this was brilliant, it just doesn't fit anymore.

Savegame Format Revamp

  • The default serialization style for things the game saves is now Byte arrays rather than the char arrays. This will make savegames vastly smaller than before, although not as legible (as if they were before) to edit by hand.
    • This is great for a variety of practical reasons, but among them it causes fewer transient garbage collector allocations. And it also makes it so that large integer numbers are no longer something that make the savegame larger. Rather than one char's worth of bytes per digit in the number (1-6 bits, per UTF-8 specs), it now just has a fixed 4 bytes for the number regardless of how many digits it has.
    • This breaks all the previous savegames, but they were already broken anyway.
    • Player profiles and settings are still using char arrays so that they can be edited by hand as desired.
  • There was previously a "too smart for our own good" method for "compacting" integers down that were used as primary keys. This could cause all sorts of bugs when used incorrectly, and aside from known bugs that this fixes, we happened to see a few other bugs in passing as we were removing it.
    • Note that this was needed almost exclusively because of the char arrays serialization that we were using. Now that we're using byte arrays, this compacting is not just bug-prone it's actually not any more efficient in the first place. So it's really good to have that out of there in general.
    • Thanks to DEMOCRACY_DEMOCRACY for reporting a particular bug caused by this.
  • Items that are truly deprecated, but that we still want some record of for whatever reason, are presently moved into a new GameData/Pre900Deprecated folder.
    • This way we still have the xml, but the game never looks at it. Normally the purpose of deprecating something is to make sure that savegames that are older can still be read in. With 0.900 we're breaking the savegames anyway, so clearing out the deprecated stuff is only natural.
  • As part of this release, we had switched to writing our savegames in a binary format. However, this wasn't really working fully properly because it was trying to transcode that into unicode, which in turn would sometimes complain with the "Unable to translate Unicode character XXX at index YYY" error.
    • This was also notably less efficient in terms of GC usage. Now we're just directly writing the binary file.
    • In fact, now we're writing a BuzzsawBinaryByteArray, which is 449kb where even the binary array was 3.2mb, and the char buffer was even larger.
  • The way that the "external data" (aka modder-type data or data that was being saved into the external projects) is saved used to be based on using a sub-serializer that then itself got written as a string back into the main serialization stream.
    • This was probably done as a way to isolate freaky bugs introduced into savegames by modders, but with our new serialization logging that's really no longer a worry. As it stands, the sub-serialization may have instead been preventing us from properly saving sub-data and getting it back reliably. Also it was vastly less efficient in the new context.
    • Anyway, given that the new context is such that doing the data saving of external data just fully inline without any wrappering is more efficient, that's now what we're doing. Based on the serialization logs, this seems to work great.

Debugging Additions

  • Added a new "Write Savegame Serialization Logs" setting into the debug section of the game settings.
    • When saving a game, write WorldSerialization.txt, and when loading it write WorldDeserialization.txt -- both in the PlayerData folder. The only real reason to turn this on is if a savegame won't load for some reason; this lets us do a diff of the two files and figure out where they are diverging.
    • Note that this won't help with an existing broken savegame. This will only help if you have it turned on prior to creating a savegame you expect to be broken. This is basically a way for us to test the savegame creation and load process, which otherwise can be incredibly opaque and take a lot of time to hunt down.
    • It's hard to understate just how big a deal this tool is. This is an area that could have us searching for hours or days for a problem, and now we can find it in minutes, potentially.
      • The specific genesis of the feature was in fact Chris spending hours searching for something and not finding a solution, and finally thinking there had to be a better way. We should have thought of this 10 years ago, honestly.
  • Added a new "Write Mapgen Log" field in the debug part of the settings.
    • When generating a new map in the lobby, write MapGen.txt in the PlayerData folder. The only real reason to turn this on is if mapgen isn't really doing what you expect for some reason, or you just want some detailed insight into what is happening and in what order.
    • To hook into this as a modder for your own purposes, you simply write to MapgenLogger.Log(). If you're doing anything CPU-expensive or that involves string concatenation or similar, then you can wrap that inside an "if ( MapgenLogger.IsActive )" statement. This simply avoids slowing down mapgen at all when logging is not active.
    • There is some serious funkiness going on with some data being null when it should not be, and this is how we're going about figuring out when and why that is happening. But this also lets us see the results of maps that are generated without having to scan with our eyeballs all over a big map so much. Given how much has just changed in mapgen and elsewhere, this is handy, even if we didn't have an immediate bug issue.
  • The fleet centerpiece "repairs" no longer get dumped to the log unless a new debug setting is enabled. This was essentially just spamming the log for no good reason at the moment, but it's useful to be able to see it in some limited cases, hence the new option.
  • Put in a buuuunch of debugging code for figuring out where excess notifications that hang out at the top of your screen are coming from.
    • The tooltips for the excess notifications should now explain what the problem is.

Prior Release Notes

AI War 2: Early Access Starts!