Difference between revisions of "AI War 2:Building Multiplayer"

From Arcen Wiki
Jump to navigation Jump to search
Line 98: Line 98:
* Raid Frigate damage 5,000 -> 3,500.
* Raid Frigate damage 5,000 -> 3,500.
* Dyson and Dark Spire units are immune to being captured.
** This solves some nasty faction interactions, such as an AI Wendigo finding a nice tasty group of Dark Spire to eat, or the Nanocaust gaining enormous hordes of units.
** Also fixes some possible player shenanigans using Hacks.
*** Thanks to ArnaudB for reporting a Dark Spire and Nanocaust incident, Histidine for reporting a Wendigo problem, and Fluffiest for suggesting (all separately).
== Version 2.006 Hotfix ==
== Version 2.006 Hotfix ==

Revision as of 14:33, 4 March 2020

Known Issues

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

What's this phase all about?

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

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

Version 2.007

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

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


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

Performance Improvements

  • Improved performance slightly on player planetary fleets without a centerpiece (aka command station), to basically not do all the checking and counts for them. Every planet has a fleet like that for every human player, so doing some checking like that on all of them was a mild expense that was not worth it.
  • Put in some more debugging variables that let us turn off more parts of the simulation to find performance hotspots.
  • Moved some logic for entity removal to be slightly more centralized, which makes it less common and also thus something that doesn't ever accidentally add the same entity to a big list more than once. There is some performance gain from this, but it's not huge in the current scheme of things.
  • SquadCountsByType is now an int array rather than an ArcenSparseLookup, which makes it much much faster.
  • MetalIncomePerPlanet_ForUI and EnergyProducedPerPlanet_ForUIOnly have become simple integers on the actual planet, and are handled in a much more efficient fashion since they are local-player-UI-only.
  • Added a new ArcenLinkedList<> class, which is a new specialist collection that is thread-safe, multiplayer-safe, and extremely high performance to iterate over, add to, and remove from.
    • We're replacing all instances of ArcenMob<>, and the rollup uses of List<>, with this new class.
    • This sees a massive improvement in speed in a lot of savegames, and the removal of micro-stutters relating to entities being removed from lists in general. This also sees a big improvement in how quickly you can get back out to the main menu.
    • It's a lot of code changes, though, so it's always possible we made some sort of mistake in this and are causing a new bug somewhere. Fingers crossed that's not the case, but the places it would be a problem are usually central enough that it should be wildly obvious. So far we're not seeing that.
    • Thanks to zeusalmighty for the savegame that helped us pinpoint the fact that ship/shot removal was being the biggest performance drain at the moment. His savegame went from a choppy 45-55% performance to smooth 100% performance.

DLC changes

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

Balance Tweaks (The Spire Rises DLC)

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

Balance Tweaks (Base Game)

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

Version 2.006 Hotfix

(Released February 29th, 2020)

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

Version 2.005 Hotfix

(Released February 28th, 2020)

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

Version 2.004 Hotfix

(Released February 28th, 2020)

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

Version 2.002 Turret Icons

(Released February 27th, 2020)

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

Version 2.001 Expansion 1: The Spire Rises!

(Released February 27th, 2020)

Prior Release Notes

AI War 2: The Grand New AI