AI War 2:Post Completion Part II
Contents
Reporting Bugs
- Any bugs or requests should go to our mantis bugtracker
- If you need to submit log files, those can generally be found under your PlayerData folder in the folder your game is installed in. The most relevant one is called ArcenDebugLog.txt. You can send us the whole thing, or just strip out relevant parts.
- In rare cases, mainly if your entire game crashes (that almost never happens), we will need your unity player log. That gets overwritten the next time you run the game after a crash, unlike the other log. These can be found here:
- Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log
- macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log
- Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log
- Have a multiplayer error? Be sure to check here first
- Feel free to join discussions on discord!
What Happens Now That The Game Is "Done?"
The last of the AI War 2 DLCs is now out, the Complete Edition is out, and you can read a retrospective of the entire project if you would like to.
At this point, we have moved on to other projects aside from bugfixes and balance tweaks and modder-support. That said, since modders and volunteers are still making updates, there tend to be patches every 1-2 weeks on average.
We expect AI War 2 to have a long life if AI War Classic is anything to go by. The game is in a really good state, and we want you to be able to enjoy it for years and years.
5.561
(Still in progress)
Fixes
- Fix to ai-cost counting of entities when computing the reinforcement cap at a planet.
- This resolves a long-standing bug causing particular ai planets to build up huge amounts of turrets.
- Thanks to Arphar for finding this!
- The error popup for "_PSec.XXXX was already running we cant start another" is now gone.
- This should have just been logged as a warning and not interrupted the player.
- Fix to factions added to a lobby sometimes not having their expected default colors.
- Factions can now coexist with the same center color, if they aren't the same faction.
- In-game escape menu About section no longer updated when its not visible.
- The irony of updating performance stats costing performance...
Improvements
- Gray/Chromatic Sphere are now separate factions, no more dropdown.
- This allows them to each appear by name in the list adding factions.
- Adding a Gray Sphere will -actually- have a gray faction color.
- Adding a Chromatic Sphere will -actually- have a bright (fuschia) faction color.
- Both have very nice and identifiable icons, like the zenith sphere already did.
- All the Dyson Sphere factions now appear together in the list.
- Splintering Spire now has a more thematic and distinct icon.
- Fallen Spire now has a more thematic and distinct icon.
- Some tweaks to the Phantasmal Decoy produced by Phantasmal Host Frigate when it takes damage.
- It is now marked as a DroneGeneral type and will therefore not be zombified.
- Adjusted its visuals a bit to not confused for a real frigate.
- No longer lingers on top of the Host.
Coders
- Added an entity tag 'not_a_reinforcement_location'.
- Allows a SpecialEntityType.GuardPost to not have GameEntityTypeData.IsReinforcementLocation be true.
- Added a faction tag 'should_never_be_in_new_games'.
- This is for removing obsolete factions lingering from a previous game when entering a new lobby.
- Older saves which use that faction can still be loaded and played.
- Getting ship-line-grants for minor factions which do not have any such lines was erroring do to an accidental recent change in behavior and has been fixed.
- The xml definition for achievements now supports minor_faction_name="Fac1,Fac2" style comma separated lists.
- This allows an achievement to be triggered by any of the listed factions.
- GameEntityTypeData.IsFleetLeader and IsKingUnit now also imply CannotBeStacked.
- Argument "readable" added to GameEntity_Squad.ToStringWithLocation.
- With it you get values in the same range one sees looking at ship ranges and move speed.
- FleetMembership.ToDebugString showing "FleetName#UniqueTypeDataDifferentiatorForDuplicates"
- Fleet.GetName() was returning "Unnamed" for npc fleets without centerpieces.
- Now returns either "Loose" or "[Faction] Loose"
- This matches existing behavior for player fleets.
- Galaxy settings now obey the 'sort_order' tag
- Sage has a use in mind for this.
- Not all that useful in general unless someone assigns an order to all settings of a category/subcategory.
- Faction settings marked as 'is_hidden' were still shown, at least in-game, and now are not.
- Faction settings with dropdown options that were rows, were not obeying rows marked with 'is_hidden' and now do.
- Test Chamber has been improvement.
- Now has the default gravwell size instead of being so small.
- You can specify a specific gravwell size with grav_well_size.
- You can specify how many squads to split the specified count of ships into with squad_count.
- By default ships that don't stack, based on their type, will be put into stacks of 1.
- By default ships that do stack, based on their type, will be put into stacks of 60 (this number is the npc stacking number from performance settings).
Mods
Simple Options
- New Mod! New Modder!
- by @Strategic Sage
- Eliminates most Galaxy options and some Faction options from the game to simplify and ease the process of creating your own campaigns. The most essential & commonly-used options remain. There are a few changes to defaults:
- Beacons default to being disabled, but can be turned on
- Expert Mode is always on for Spire games
- Venators are always on
- Fuel Overuse is on if Fuel is active
- ZA Civil War is always on
- As always, constructive criticism is encouraged on the discord. Any flaming can be safely disposed of in your nearest circular file receptacle.
Radiant Maps
- New Mod! New Modder!
- Try out new map types by @RadiantPhoenix
- Globe: the topology is like a sphere
- Square Fractal: a grid connected in a fractal pattern
- Flenser: a pentagon that puts the AI in the middle if you are outside it. Mostly theoretical
- Brick Wall: can be a brick wall or a hexagon honeycomb.
- Cursed: the worst. The absolute worst. Play at your own risk.
- Sausage: the wurst. The absolute wurst. Have fun. :)
- Hello World: the first galaxy God ever made
Points of Interest
- New ai type: Imperial
- Watch your clock. The Imperial AI is always building more fortifications and hunters to patrol the empire.
- Plays like Turtle but with the additional time pressure of roaming builder ship that add new defenses, and shipyards that produce guardians for hunter.
- Thanks to Arphar for contributing this! Also clever mechanics and unique for any AI type!
Generator
- Fix to Mirrored map type in some situations putting a planet in the centroid way too close to another.
- In fact, it added them at (0,0) in a failure case, but will now just skip adding the problem planet.
- Thanks to RadiantPhoenix for reporting!
- Fix/Improvement to ZA homeworld selection when player homeworld is on the galactic edge or a large number of planets.
- Will now more correctly avoid picking so close to ai homeworlds.
- Thanks to ussdefiant60 for the report!
- Scatter map type now initially links planets as a minimum spanning tree.
- The result is it looks less messy.
- Showing major data center icons from the start was not intentionally committed and has been removed.
- Oops. It could be a feature to turn on in settings, if requested though.
Necro Party
- Fix a typo causing zero Igors to be granted, is now two (per home).
- Thanks to two reporters on Discord!
5.560 Let The Ambushes Resume (Until Morale Improves?)
(Released August 1st, 2023)
General
- Orchid's rescue pods bumped back up a little in size and added the 'drone' overlay image.
- Fix to Ambush Post not spawning drones on death, and potentially other things.
- Moved the reason a form is not available to the top instead of the bottom of the tooltip.
- This is when changing the form of a ship via its fleet details window.
- Options fixed to correctly show ones you cannot afford the essence price for.
Coders
- HackingImplementation_WithMenu now shows the extra label info (generally this is additional resource costs) for items that are not possible instead of skipping that.
- GameEntityTypeData.CalculateEffectiveGalaxyWideCapForPlayersConstructing now takes the faction as an argument.
- Added virtual ExternalFactionBaseInfo.GetAddedToGalaxyCapForType( GameEntityTypeData ) so that a faction can have its own mechanics for increasing a galaxy-wide cap.
- Added cheat cmd:allnecroflagships which gives you all blueprints.
Mods
Sidekicks
- Reapers get some buffs to make their gateways more likely to stick around
Necro Party
New Mod for Necromancers!
- This mod makes gameplay and balance changes for Necromancer players. Our goal:
- More variety in winning strategies.
- Give less used mechanics and ships a purpose.
- Make each game/galaxy with Necromancer feel more varied.
- See full change list in-game.
- These changes are quite dramatic. Really, read the mod description =D
Reclaimers
- The message shown when research finishes now takes you to the research ship instead of the home station, if clicked.
- Wormholes formed between deep space outposts are now actually located where the station is.
- Fixed a lot of reclaimers entities to not give the player vision when 'share npc ally vision' setting is on.
- Fixed time elapsed between LRP losing time when its been over 20 seconds.
Points of Interest
- Fix to several phenomena inappropriately showing a strength value and other ship-like stats.
- Shattered World phenomena fix to not obscure other icons with its model.
- It also looks cooler with the new rotation.
Ai Lieutenants
- Disabled from mod list until more work can be done.
Rebalancing Party
- Disabled from mod list until more work can be done.
5.559 Deringing
(Released July 27th, 2023)
Bugfixes
- It's very hard to test, since this is something that only happens intermittently in the case of unit testing, but the "stuck extra rings hanging around" should be a thing of the past.
- The way it works is, the rings and similar now remember when they were last asked to be drawn, and if they are not asked to be drawn for more than 1 second, then they disable themselves.
- Previously, these were being orphaned and not being still drawn even though nothing was asking them to. There is code running on the rings themselves which lets them self-check and thus bypasses the orphan problem. This of course leads to two other issues:
- Issue one with the self-checking is performance. This has been implemented in a very slim way, using normal unity Monobehaviour update calls, so that should be solved. Other approaches would have involved things like iterating the list frequently or something, in a way that would have been detrimental. The other reason that this isn't too bad on performance is that we have a pretty limited number of rings ever used, since they are pooled and reused as needed.
- The second issue is that just because something is properly cleaned up, that doesn't mean it won't be causing other problems later. Specifically, these rings are distributed from a pool of rings, and if one is orphaned, then technically some ship visualizer that previously was using it still has a reference to it. This would mean that when that comes back into play, it would resume trying to use said ring, and then we'd start seeing flickering rings or rings jumping around strangely, because two ship visualizers are writing to it at once.
- To bypass this second problem, I implemented a version of something that I developed for Heart of the Machine, where essentially the rings all now have "owners," and before using an existing ring from a collection or variable, the ships or similar say "if I'm not still your owner, then I will ignore you and get a fresh ring from the pool, because someone else is using you now."
- What has been successfully tested so far is that the rings still look and work fine when the game is freshly open, performance does not seem to be affected adversely, and the "check for orphans and expire them" logic is working.
- What has NOT been tested is what happens when an orphan is actually encountered and cleared, and the bits after that. I simply can't ever make it orphan a ring, so... I have no way to test that, which is why this bug has persisted for so long in the first place (not being able to cause the bug, but knowing that other people see it regularly, is a special kind of frustrating).
- So there's a vague possibility that the sky opens and demons spill out when this actually encounters an orphan, but the code is very simple and has been proofread carefully, so the odds seem low.
- Thanks to Galian Gadris for the reminder that this was still going on.
- Fix a bug since beacons first were committed. They were being treated as SmallGood when there was a FactionBeacon seeding-type.
- Actually difference in behavior, if apparent at all, is that planets with beacons wont tend to not have any 'good' stuff seeded there with them.
- Galaxy map strength text for 'hostile threat' which was the second/bottom line to the right, will now match the factions center color instead of confusing you by using the trim unlike other text labels.
- Fix to 'Share Allies Vision' galaxy setting giving you vision of all planets with an Outguard Beacon.
- Fix to ships granting lines not getting actual lines picked successfully, with certain combinations of the grant related tags.
- This also removed a whole ton of duplicate code.
Improvements
- The sidebar button/tab for outguard now has subtext with the number of outguard currently ready to be deployed.
Coders
- Added DrawBag.AllowZeroWeightItems so that added items with zero weight will still be added to the bag.
- The tags 'force_gravity_well_size_of_planet_to_be_at_least' and 'force_gravity_well_size_of_planet_to_be_at_most' which repositions entities on planet when shrinking the grav well size, now also does so if it increases it.
- Added support for parsing xml attributes as an html hex format color, ie. #FF0000 would be red.
- Added GameEntityTypeData tag 'does_not_give_allies_vision' which is used if the galaxy setting to share allied vision is on to exclude individual ship types.
- Galaxy settings that are CustomDropdownCoreTable can now be modified with partial records. This was generating exceptions if attempted.
Mods
Outguard Party
- Fix to the remote hacking drone lingering forever as a crippled ship after it attritions to death.
More Frigates
- Fixing xml error on startup about invalid range on a beam weapon.
Azaran Empire
- Added DLC requirements.
Dire Macrophage
- Added DLC requirements
5.558 New Mods And Authors
(Released July 21st, 2023)
Game
- Decrease size of the Orchid Ark's rescue spore icons
- Thanks to Mac for reporting
- Add some defensive code for an exception hit in the resource bar UI
- Thanks to R4gingFire for reporting
- Fix to null reference exception rarely occurring in decollision planning.
- Nanocaust invasion planet is now deterministic.
- Which is to say it will pick the same planet if you reload and replay the same save (but it doesn't only reinvade the same place, obviously).
Coders
- Get/Release a temporary RandomGenerator easily with RandomGenerator.GetTemporary and RandomGenerator.ReleaseTemporary.
- Easily get a random element in a list via List.GetRandom(RandomGenerator).
- Home-Arks can now be tagged with custom_neverRandom="true" to prevent them from being chosen when Random is selected.
- Ai Types can now be tagged with custom_neverRandom="true" to prevent them from being chosen when Random or Adaptive is selected.
- FleetDesignTemplates for your starting fleet, mobile factory, and battlestations can now be tagged with weight="0" to be skipped past when Random is selected.
- Necromancer now checks if a guard post has ImmuneToNecromancy before converted it.
- The debug feature for showing the destination of threat (occurs when debug tooltips setting is on) within the popup window for visible threat is now a ton easier to comprehend.
Mods
Azaran Empire
- New Mod!
- Thanks to the author @Arphar
- Introduces the Azaran Empire as a new faction.
- The galaxy is being invaded by the Azaran Empire. They are a highly centralized empire bringing their own planet into the galaxy from which they will produce ships to take over planets and build structures to bolster their production.
- Face off against them in order to gain rewards and hack their facilities to gain new ships to use either against them or the AI.
- Or fail and watch them take over the galaxy.
- Includes rewards for Necromancer, alongside some rewards for Humans to keep on fighting.
Sapper Alterations
- New Mod!
- Thanks to the author @obscuris
- This mod alters how the Neinzul Sappers faction behaves and how their economy works, along with adding new units and mechanics.
- All changes can be read in the text file provided with the mod folder.
Dire Macrophage
- Now has rewards for Necromancer.
Sidekicks
- Some tweaks to the dyson sidekick's flagships for visual size and balance
- Reapers will now find it even harder to blow up command stations when they don't have any gateways on the map
- The Jabberwock AI will no longer automatically get ships from the Sidekicks mod if the Sidekicks mod is enabled. Instead there is a new AI type in the Sidekicks mod, Jub Jub Bird (Beware the Jub Jub Bird!) that is the Jabberwock + Sidekicks ships
- Thanks to Dismiss for requesting
ExoWar Overhaul
- The achievements for killing a mothership and flenser now trigger correctly upon killing the variations in this mod.
Reclaimers
- Disabled the chat log message when a scrap box is produced and when drones are reinforced, since these can become spam with many planets.
- Constructor ships now can build a Near-Space Outpost on the planet they are produced, instead of always first leaving it immediately.
- Fixed bug causing the Reclaimers Home Station to always end up at the center of the planet.
- It is now always near the player's station/necropolis as intended.
- Fixed issue causing a startup warning about the autobuild setting for ReclamationFrigate.
- Fixed issue with BaseReclaimersInfastructure appearing in the encyclopedia.
- Disabled most of the reward infrastructure, they were not interesting. It now only has the wormhole suppressor and the warp gate.
- Chromatic Ark is now never chosen when Random starting ark is selected.
- Dismissal Fleet, Dismissal Defenses, Reclamation Fleet and Reclamation Defenses will no longer be chosen when Random is selected.
- So no need to disable the whole mod just to avoid getting weird randoms.
- Scrap box will no longer be destroyed by enemies.
- Near-Space Outposts now gain cloaking at mk3.
- The faction setting 'Debug Mode' is now more clearly separated from other settings.
- Necromancers no longer end up converting dying Near-Space Outposts like they were a regular guard post.
Points of Interest
- Marked all new ai types added by poi to never be picked for random or adaptive.
- One less reason to disable the mod, when you just don't want the AI types appearing randomly.
- Vindictive Ai type is now in a much better and playable state.
- Halved the amount donated to hunter.
- Anger accrued is now properly saved/loaded, in all cases.
- Many structures which were causing anger no longer do.