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

From Arcen Wiki
Jump to navigation Jump to search
Line 19: Line 19:
  
 
* Imperial Spire vessels are now MK7.
 
* Imperial Spire vessels are now MK7.
 +
 +
* There is now extra debugging information shown visibly if the fallen spire actually has an issue.
 +
** Before it would just silently spam the log.
 +
 +
* When a unit is trying to transform and it is in an invalid state, it now gives a more clear error message.
 +
 +
* When centerpieces die, they are now blanked out properly; previously it held onto them in a dead format but mostly-removed, and this could cause some funky errors in the fallen spire in particular, but possibly other places eventually.
 +
** This was something that the squad wrappers we used to use automatically filtered for, so that's why it pops up now but not previously. It's a lot more efficient the new way, but we needed this extra check for this strange edge case.
 +
** Thanks to Puffin for reporting.
  
 
== Version 2.007 Speed Boost ==
 
== Version 2.007 Speed Boost ==

Revision as of 19:46, 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.008

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

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

Version 2.007 Speed Boost

(Released March 4th, 2020)

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

Bugfixes

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

Performance Improvements

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

DLC changes

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

Balance Tweaks (The Spire Rises DLC)

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

Balance Tweaks (Base Game)

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

Version 2.006 Hotfix

(Released February 29th, 2020)

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

Version 2.005 Hotfix

(Released February 28th, 2020)

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

Version 2.004 Hotfix

(Released February 28th, 2020)

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

Version 2.002 Turret Icons

(Released February 27th, 2020)

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

Version 2.001 Expansion 1: The Spire Rises!

(Released February 27th, 2020)

Prior Release Notes

AI War 2: The Grand New AI