AI War:5.000 Release
Contents
Statistics For The Curious
- Between 3.120 and 4.000, we pushed out 81 distinct public beta releases over 170 days. That's an average of one release every 50 hours. This is with a major chunk of Tidalis's development happening in the middle (it was released July 16th), AND a signficant period with no public releases while we ported AI War from .NET/SlimDX to Unity3D.
- Community contributors assisted us with over 800 distinct bugs and suggestions-that-were-implemented (counting 95 distinct contributors).
- The combined release notes for those 81 betas total over 300 kilobytes of text.
- Believe it or not, this massive document (which is just under 31,000 words long) is the abbreviated, organized version of the full release notes (part I and part II, which were over 55,000 words -- or, 222 pages of a novel.
Highlights
AI Updates
General Large Gameplay Additions
Co-Op Improvements
Performance Improvements
Interface Improvements
Graphical Improvements
New Ships
Ship Logic Updates
Balance Updates
Misc Changes
- Extended "warp in the clowns" cheat to take 2 additional parameters (separated by commas), the first is a case-insensitive ForegroundObjectType name, the second is the base wave size (which is multiplied up down and sideways, but allows relative control).
- Added support for use of "any" as the second parameter of the spawn-immediate-wave cheat, so "warp in the clowns,any,1" will send in a wave of any, but will use the 1 size modifier instead of whatever the AI Progress would dictate at the time. Note that the impact of the size parameter is very different in the "any" case than if you specify an actual ship type; generally it results in much larger numbers (so you probably want to start with using "1" as the size parameter, and work up from there).
- MkIV scout now no longer evades after exiting a wormhole.
- added parametrized version of knowledge cheat: "Give Me K,x" (where x is an integer >= -50000 and <= 50000) changes using player's knowledge by x.
- added parametrized version of ai progress cheat: "Get Angry,x" (where x is an integer >= -2000 and <= 2000) changes AIP by x.
- A new, Unity-friendly way of handling version numbers has been implemented.
- Only a very few ships (a couple of Golems) had differing metal and crystal repair costs. These have been adjusted so that metal and crystal costs are always the same, and the tooltip is now more concise with simply specifying the repair rate as something that is always applying equally to metal and crystal.
- There is a new internal format for storing player data inside savegames, which makes it easier to find issues and desyncs relating to player data.
- Immobile AI ships that were at a planet the last time the planet was scouted are now visible through the fog of war (as in many other RTS games).
- The game now randomly selects from all the possible title music tracks (from the base game and any installed expansions) when deciding which title music track to use.
- Warhead silos and starship constructors were seeded onto enemy planets as a capturable for human players to take over in the past, mainly so that players would be sure to eventually discover these constructors if the players were not diligent in exploring the build menus. However, now that these constructors are seeded at the start, this is no longer needed, and it was sometimes confusing to players anyway (some thought that the silos or starship constructors would be used against them, which was not the case). These will no longer be seeded into new games on AI planets.
- PermaMines have been removed from the game, as the game has evolved to a point where they just didn't make sense any longer (free transports is a big part of that, plus the permamines just involved too much micro in general). PermaMines have been changed into regular mines.
- Added 24 achievements. 1 for the base game (win a game with the Avenger plot enabled), and 23 for CoN.
- Human-controlled attrition emitters now do not damage AI-held units that cause AI progress on death (like distribution nodes and zenith reserves).
- Cloaker starships now prefer to cloak ships with transport capacity or buy menus over other ships. However, this preference will not let it "kick out" an ship already chosen by the starship for cloaking in order to "make room" for a transport (or whatever) that has just come into range.
- The AI will no longer use the following ships as homogenous waves:
- Forcefield Bearers
- Munitions Boosters
- Zenith Autobombs
- Shield Boosters
- Youngling Nanoswarms
- Zenith Paralyzers
- Astro trains in general (including turret trains), and also astro train stations, are now a lower priority for player ships to auto-attack. This will help somewhat with ships getting distracted by turret trains, but if ships are already latched on and firing on it, it may still be 5-10 seconds before they decide to shoot at something else, so this may not have as large an effect as some might prefer.
- The settings screen will never prompt players to restart the game now (previously it did on resolution changes and on expansions being enabled/disabled). Yay!
- It is no longer possible to manually select a starfield type in the game settings -- a completely new starfield generation algorithm is now used.
- Same as with the starfields, it is no longer possible to select styles of nebulae, as they are now handled differently and better. Also, nebulae detail levels can no longer be set in the game settings, but nebula can now be turned off via a toggle if desired.
- The option "Scale Game On Large Monitors (Keeps game objects the same relative size on larger and smaller monitors, but may cause lowered overall quality)" has been removed, as it no longer applies on the new platform (it looked awful on the old platform, anyway).
- The "Disable Very Far Zoom" option has been removed from settings. It's long-since been clear that nobody in their right mind would want to do that.
- The "Disable Cleartype" option has been removed from settings because it also has no meaning on the Unity platform (text comes from prerendered textures, never from the OS, now).
- The "Default Frame Skip" option has been removed (as has the "frame skip" feature in general), because Unity 3D manages the render-vs-sim framerate automatically (and does a much better job of it, we might add).
- The "Extra Tooltip Font Size" option has been removed, as fonts can't be dynamically resized in the same way on Unity 3D the way we're using the fonts. BUT, because the game now supports true fullscreen, that shouldn't ever be a need any more, anyway -- this feature was added for a few players so that they could compensate for the text looking too small when viewed at their overlarge desktop resolution.
- The settings option "Use Simple Render For Far Zoom Icons (Slower, But Prevents Invisible Icons On Some Graphics Card Drivers)" has been removed, as with the new Unity 3D system there is no risk of the invisible icons -- again, yay. Now it's definitely always nice and fast for everyone, and there's one fewer confusing settings options.
- The "Always Show Selected Units Hover Text" settings option has been removed, as the new Selected Ships window has replaced the entire older way of handling selected ships (and this new way is much better).
- The "Combine Planetary Summary Icon Colors" and "Hide Planetary Summary Icon Counts" settings options have been removed, as the planetary summary has been revised substantially enough that these sorts of options really don't have any solid purpose any longer (and we're really making an effort to weed out settings options of that sort, so that the useful ones are easier for players to look at and find).
- The settings options "Disable Blending of Shot/Explosion Effects" and "Use Simple Shot Effects" have been removed from the settings screen, as these were performance-boosting settings that no longer are needed with the new special effects rendering methods now employed by the game.
- The "Disable Explosion Debris/Embers" option has been removed, as the debris/ember emission has been taken out of the engine in favor of more complex base explosion effects (the end result looks better and runs more efficiently).
- The "Show Window Toolbar" settings option has been removed, as unfortunately that's not something we can control in Unity.
- New settings options have been added that make it possible to set the windowed resolution to anything, or to set the fullscreen resolution to a list of general resolutions, and to toggle which one is presently active. Basically, the identical setup to Tidalis.
- The Unit Relative strengths is no longer compiled into the game itself, but is now in a UnitRelative.dat file that is in the RuntimeData folder. This lets players update the relativestrengths file if they are so inclined (sometimes it takes us a while to do it).
- Previously, the game only ran in a "faux fullscreen" mode that was the size of the player's desktop resolution. For many that worked very well, but for some that made the fonts unusably small. Now, thanks to Unity 3D, the game supports both true fullscreen as well as windowed mode.
- Unfortunately this means the loss of the "faux fullscreen" mode, which we're sorry to see go, but that is not yet something Unity 3D supports.
- The game also now supports resizing (and changing between fullscreen and windowed modes) in realtime. Previously, the game had to be restarted whenever sizing changes were made.
- A brand new Tidalis-style in-game updater is now included. This beats the pants off any updaters we used in the past in terms of speed, efficiency, and overall flow.
- The screenshots function (F12) was previously unable to function on some computers. It should now work for everyone.
- The screenshot function, plus any external video recording software (FRAPS, XFire, etc) previously would not pick up the menus in the game because of their GDI+ nature. Now this works with all of them.
- Also previously, externally-inserted overlays like the Steam interface and XFire had to have special support (as in the case of Steam) to avoid conflicts between the overlay and our GDI+ menus. Now that is no longer a consideration either, it all works as you'd expect.
- Our installer is now much better. The old versions used MSI packages, which are clunky and extraordinarily slow. It helps that we now have no prerequisites for the game, but the installer is miles better even discounting that.
- The update checker now uses the main Arcen site, rather than Amazon S3, as we have the bandwidth to spare for that sort of simple thing and it will no longer cost us anything.
- The update checker also now is substantially more flexible in terms of being able to download update files from any other server (as specified in the update file), rather than only from a server compiled into the game itself. This uses a tad more bandwidth for update checks, but the added flexibility is well worth it.
- The old version of the "AI War Pre-4.0 Settings Importer" did not work because it was in a folder with a file called AIWar.exe in it. Based on how .NET looks for file assemblies, that was causing it to look at the wrong file for trying to bind. Now the importer has been updated to run instead from inside the RuntimeData folder of the game install folder, which bypasses this issue.
- The tutorials window has had some changes: the link to the videos page, and the link to the community wiki, have both been removed. A direct link to the "Fast Facts: A Crash Course On AI War" has been added.
- A number of refinements have been made to the tutorial playback engine (scrolling messages, clickable messages, etc).
- All of the tutorials in the game have been revised fairly substantially.
- The DebugMustAuthCyclesIncrement (F4) and DebugAuthCycles (F5) key bindings have been removed, as the ability to make the game simulation run slower (and the addition of the debug log) make this pretty unneccessary now.
- The debug-related keybindings for F6, F9, and F10 have all been removed.
- The toggle score display (F2) option has been removed, as the score is no longer shown directly on the screen at all times.
- The main score now shown in the scores panel of the stats window is the adjusted score (which is what is mainly used on scoreboards). The raw score is now also still shown -- this was the old score that is shown in-game -- but it is given a lower priority.
- The score benefit from using mercenary ships has now been slashed 10x.
- When there are multiple available title music tracks, as is the case when players have an expansion installed, the game will now pick randomly between those songs and play them at the title menu and lobby. That way it's not always the same track just looping instantly, and all the title music tracks can still be enjoyed when you've got the expansions.
- Removed the Galaxy Display for starship constructors, since they are already counted in the All Constructors display.
- It is now possible to see the screen/viewport sizes in the F3 debug menu.
- AI planets with most units in cold storage and no human presence generally only process every other sim cycle (but double the movement, etc); this looks odd when viewing such a planet via complete-visibility, and now that the game actually syncs some of the local-interface data for each human player across the network, we have changed this so that an AI planet currently being viewed by a human player will never use the every-other-cycle model.
- Ship damaged smoke and embers have been removed.
- Player Home Command Stations are now considered mark V.
- Advanced Research Stations are now considered Mark V ships.
- Warheads are now actually marks I-III rather than all being mark V.
- The AI force fields versus the human force fields are no longer colored differently. The reason for that has long since passed, and consistency is now more important.
- The ships included in the Strong/Weak data export now exclude starships, turrets, command stations, guard posts, golems, heavy defenses, astro trains, and anything that is not classified as "extended mobile military."
- This is because, for balance purposes, these various ships can't be quantified in a useful way by this export. So it saves signficant time creating the export to ignore them. In this specific release, for example, it cuts the number of pairings of ships down from 11,902 down to 4,877. Additionally, it's saving some of the slowest pairings, which is even better.
- The "excel xml" files that were previously being exported often had problems being read in many programs, including Excel 2007. They were using an older Excel 2003 format that was not widely supported, and that was not even working for the Arcen staff any longer. The game has now been updated to export true .xls files in the BIFF8 format, which is supported by pretty much every spreadsheet program since Excel 97.
- Special thanks to the awesome open source excellibrary component for this, which we're using a stripped-down version of for this.
- Previously, Mark V ships were sometimes called Core ships, and sometimes called Mark V ships. Some of the ships even had different names at the core level: Core Predator, Core Leech, etc. All of these have now been made consistent, using the Mark V nomenclature. There are still some references to "Core" in the game, but that's meant as "on or adjacent to the AI home planet," rather than "Mark V." That distinction was always there, but muddied by the fact that mark V ships were also more generally called "Core." This should hopefully avoid some confusion in the future.
- Now if there is any threat within the first 60 seconds of a new game, those threatening ships are instead added to special forces. This catches any overflow from the start of a game, just in case.
- Moved F3-Debug part of ship-mouseover-tooltip to the next-to-cursor tooltip box, since there wasn't room for it in the main tooltip-window anyway.
- If a guard post has more than two guardians assigned to it, it will automatically prune down to two guardians. This is a safety measure just in case something happens with the normal logic for making sure that guardians don't get too plentiful per-guard-post.
- Note that there is a single "freebie" tachyon guardian at every AI-controlled wormhole that is not guarding any of the guard posts, and which therefore doesn't count.
- Added some "defensive programming" to prevent crashes due to occasional problems loading sound files on OSX.
- The old "Snap Cursor To Window" game setting has been removed, as there is no way to do this in Unity.
- By default, LeftShift and RightShift are now treated as the same key (same with LeftAlt/RightAlt and LeftCtrl/RightCtrl). There is a new toggle on the interface tab of the settings screen to make the game treat those two separately.
- There is also a new toggle on the interface tab of the settings screen to suppress the normal "multi-building-while-holding-shift" behavior that happens when, for example, placing tractor turrets by holding down the left-mouse-button and shift. The default behavior is the same as it's always been, but with this toggle you can use shift solely for the purpose of "do not clear the item out of my cursor when I place one".
- The number of available sound effects at any one given has been chopped in half, to avoid a crash issue on some OSX machines. It shouldn't really affect playback even in large battles, as there was already a different kind of limiter, but it should prevent the crash.
- The pause text at the top of the screen now shows up in the same position on the galaxy map that it does on the planetary view. It also now moves out of the way when you move your mouse cursor there.
- The armor booster tooltip has been updated to be more clear, saying 3X instead of 200% (they are actually equivalent).
- Autosave is now enabled for tutorials.
- The license keys entry textboxes now automatically strip out extra whitespace and newlines, making it easier to cut-and-paste into them from various external sources.
- Previously the loca-strings for the GalaxyDisplay and GalaxyDisplayFilter items included a description of which keys to press to trigger them. Since the keybindings are now dynamic those were no longer necessarily accurate and have been removed. In the future we can have them display the actually-currently-bound key like some of the other context menus but that will require some refactoring of those particular menus that will have to wait until post-4.0.
- The way that sound effects are pooled has been adjusted downward once again, to keep the amount of disk access and sound over-bleeding to a minimum. This makes the battles sound a little less chaotic, which is another plus, and hopefully it will help (or fix) the remaining OSX crash. This is a mild boost to performance on both platforms, incidentally.
- The "this key has been held down for x seconds" display no longer shows when the hud has been disabled (for those scenic views).
- The description of the Harvester Exo-Force-Field has been made more brief.
- The Harvester Exo-Force-Field has been renamed to Harvester Exo-Shield, its original name, since there's no longer a reason to differentiate between force fields and shields. Also, Force Field Bearers are now back to being called Shield Bearers, for the same reason.
- Music is now paused during multi-step processes (GameInit, StartGameFromLobby, and LoadGame) to avoid skipping, and since the music track changes from the title screen to in-game anyway.
- The pdf game manual has been updated and revised.
- The tutorials are all now played on Normal speed rather than the former Epic. This prevents the ship movement, etc, from feeling sluggish, and doesn't really make the game feel any more difficult since the AI ships almost never take the initiative here, anyway. Better first impression, and all that.
- The intermediate tutorial in particular has been hugely revamped (even moreso than the other three, which saw huge updates):
- It now introduces the CTRLS screen, including rebuilders and engineer FRD automation.
- It now covers using starships as a key part of every offensive, as well as the benefits of scout starships.
- It now includes a LOT more offensive/defensive tips that players really ought to know when playing for real.
- The tutorial now includes a much more natural difficulty progression, so that players won't feel so lost when starting their first real post-tutorial campaign without the hand-holding.
- It now includes tips for a better economy, as well.
- Knowledge Raiding is no longer included in this tutorial, as it's now quite secondary.
- It covers getting surprised by the enemy, and instructing the player to pause to have time to react.
- It also now skips the part on ion smashing, as the other parts of the tutorial are now more interesting and basically cover that, making this a lot less interesting.
- The intermediate tutorial is also now six steps shorter than before, although a lot of the existing steps are more robust and interesting than before. It should take about the same amount of time to complete as before.
Bugfixes
- Resolved various issues (related sound, GUI textures, error logging, etc) causing instability on OSX. This involved multiple sweeping rewrites of the sound subsystem, but hey, whatever it takes.
- Fixed a rare bug that could cause the lobby to draw without the planets actually showing, while throwing a lot of exceptions, upon the second or third run of the program (but not always!). This seems to only have happened if the players were viewing the galaxy map when they exited out of the game, and possibly only if they were hovering over a plant at the time.
- Hopefully fixed a rare AI Assertions bug that could be caused by a "race condition" of sorts when starting a new game or restarting the AI thread.
- Since the 4.0 switch, the "Automatically Check for Updates" settings option was doing nothing. Now it properly disabled automatic update checks.
- Added a new "Left Mouse <=> Right Mouse" AnyTime KeyBind (defualts to None on windows, defaults to LeftApple on a mac), for people who were having problems getting the normal ctrl+left = right logic on a mac one-button mouse.
- When the AI Type that would be selected is unavailable (due to options being changed as above, for instance), it now defaults to Random Moderate/Easier instead.
- When the player or AI colors would be set to nothing in the lobby based on their old values not being available, it now sets them to the first entry in the list instead.
- Fixed a bug where Youngling Commando MkIIIs were not scaling with the unit cap.
- Fixed a bug preventing the galaxy-map helper-window from switching out of displaying the last find-mode target. Also changed the find-mode text to reflect that left clicking empty space ends it, rather than right-clicking empty space.
- Fixed bug occasionally causing a null exception in GameButton.SelfRender early in the game. This was being caught, logged, and ignored so it probably wasn't hurting anything, but definitely good to have it fixed.
- Fixed a bug preventing player from buying ships from a human rebel colony.
- Fixed bug preventing the mercenary space dock from building a ship whose base type was prohibited by the Available Ships lobby setting (so if you had it on "simple" you couldn't build ether jets or beam frigates from the mercenary space dock, but now you'll be able to).
- Fixed an (apparently) rare crash bug in the tutorial that happens right after capturing the ARS. If the underlying bug happens it may cause problems, but at least shouldn't crash.
- Previously the save window, load window, and stats window would not functionally fit on a 1024x600 screen (1024x768 is the lowest resolution supported, but we try to make 1024x600 work at least minimally functional), fixed the sizing of controls so this works now.
- Also fixed the settings window to fit (albeit barely) on 1024x600.
- Also fixed the lobby window for 1024x600, though this one is a bit more intrusive: when the lobby window first initializes, if the height of the current resolution is less than 768, it omits the logo at the top of the right window, so there's room for the start game button at the bottom. This looks a bit weird but it's at least functional.
- Previously, the "Attack Recharge" was also being used as an "Ability recharge" for a growing number of ships (raid engines, cleanup drones, rebuilders, etc). That led to a number of bugs so subtle that no-one has ever reported them (mostly with the raid engine), but now we've split these apart and the various bugs are thus resolved.
- Fixed bug where if you had the game in non-trial mode and your last-started-game's available ships setting was something other than "Simple", and then switched to trial mode (by adding an expansion without a key), and then tried to start a new game it would fail.
- Fixed some inconsistencies in AI "can I give another order to this unit yet?" logic.
- Fixed some bugs skewing the overall "special difficulty" modifier (based on homeworld/player count and AI difficulty); it was only used for hybrids, so the problems may not have been apparent.
- Fixed some rare null-exception bugs in the lobby when coming in with a messed up settings.dat.
- The images for the AI Carrier, Raider Guardian, and Laser Guardian have once again been included in this beta release since the 4.021 update on Steam for some reason still didn't include them.
- Fixed a bug that's probably been around since unit scaling and armor where the game was frequently using the normal-cap base-attack-value instead of low, when playing on low. With this fixed, it is likely that stuff will die faster on low now.
- Fixed a null-exception bug in hybrid-hive logic that was killing the ai thread when it was unable to pathfind to certain objects.
- A message is now shown when a savegame is saved, to provide visual feedback that the save actually did occur. It's only been since SlimDX that this message was missing, incidentally, but it's fixed now.
- Fixed bug where the minor-faction-shots-never-anger-AI logic was causing it to not even apply the repair-cooldown from the damage. Changed to handle LastDamaged separately from LastAngered.
- Fixed swapping of text between two keybinds on the controls window.
- System.IO.File.AppendAllText is no longer used, in favor of a wrappered System.IO.StreamWriter. It is apparently possibly the case that the AppendAllText does not close properly, or uses a secondary thread, in Mono on OSX. That's not 100% certain, but as a matter of safety at this stage we're trying to eliminate extra held handles that might exist.
- Fixed index out of bounds exception in reference tab.
- Fixed a sizing issue that was causing an error message and for the special forces guardian to not appear in far zoom.
- Modules firing will now apply the same "cannot be cloaked for x seconds" logic to their parent ships as to themselves.
- AI Carriers engine health from 100 => infinity.
- Multi-shot ships no longer are able to get any "freebie" shots if their target dies while their shots are incoming against it. This nerfs the mutli-shot ships to a minor degree, but more significantly it is a CPU-cheap way of solving a huge bug that was recently leading to multi-shot ships sometimes getting loads and loads of freebie shots that they weren't supposed to -- leading to things like the "rapid fire artillery guardian," for instance.
- Shot damage is now recalculated right when a ship is hit, so that if targets were changed (was the forcefield, now the ship, or vice-versa) the appropriate damage is now done rather than an inflated or reduced amount.
- Previously, SuperTerminals and AI Eyes were not limited in what they spawned based on the types that the controlling AI had unlocked. Fixed.
- Put in a fix that prevents a semi-rare exception from killing the AI thread.
- Fixed bug where superterminal would stop generating ships once it tried to cross from MkIV to MkV ships. For now it will just stick with MkIV.
- Fixed bug where AI players were having no wave-eligible core ship types unlocked, and in some cases no core ship types unlocked at all. This caused various problems. Now all AI players will have the core fighter, core bomber, and core missile frigate unlocked. This will be applied retroactively to savegames as they are loaded.
- The way AI/minor-faction ships with module templates are created fixed to be much less fiddly (this was leading to avengers and AI-controlled Riots spawning with no modules).
- Previously, when an AI ship contained other ships (carriers, etc) that was not reflected in the threat/attack meters properly. Now it is.
- "Ally to all" minor faction ships were previously being affected by attrition. Fixed.
- Previously, rally posts were able to be damaged by mines. Fixed.
- Fixed bug where minor faction ships were consuming player energy.
- Previously, self-attrition was impairing engineers from being able to repair ships with self-attrition. Fixed.
- The AI now has some new logic for cleaning up certain old ships on its thread, to hopefully avoid issues with "ghost" warp gates and such that would lead to waves that shouldn't happen. That may or may not have been happening before, but we suspect it might have been and this adds on some safety checks to hopefully prevent it.
- Nanoswarm now considered to use non-shell ammo, so bulletproof stuff should no longer be immune to them.
- Fixed a bug where multiple science lab mkIIIs on one planet were reporting as if multi-stacking the reinforcement multipliers, even though they were not actually multiplying them.
- Fixed some discrepancies in applying AI-Type-specific modifiers to wave sizes between mixed-wave and homogenous-wave branches.
- Fixed a bug where the WaveSize multiplicative factor was being applied twice (once on the AI thread, once on the main thread), leading to factors < 1 causing smaller-than-intended waves and factors > 1 causing larger-than-intended waves. In some cases the factors were >= 10, and you can imagine how bad that got.
- Fixed some mixed-wave messages showing up as homogenous and thus misleading the player as to the content of the wave (now just says Enemy Ships in those cases).
- Fixed unintended inflation of counter-attack-wave size. May still be some issues but this should fix the biggest of them.
- Fixed a bug that would allow the selection of a non-available bonus ship type in the lobby, but not actually allow the construction of that type in the game. Fixed to not allow the choice in the first place.
- Warheads produced by the Neinzul Rocketry Corps will now actually do something. Their behavior was probably disabled a while ago when a wholesale revision was made to how the AI thread issued commands for minor faction ships (or, more precisely, how it does not).
- Be afraid.
- Fixed a bug where the game was not recomputing the coordinate in "world space" under the mouse cursor if the game was moving under the cursor without the cursor actually moving (panning, zooming, switching planets, etc).
- Fixed unintended inflation of schizo waves where each distinct type would have a minimum of its effective ship-cap; now ignores that rule for waves containing at least two non-starship types.
- Fixed bug causing the "minimum wave size for difficulty" logic to be twice as high as intended.
- Raid Engines now no longer trigger on zombie ships since the human player has no way of controlling where they go.
- Raid Engines used to be capable of triggering multiple times at once if multiple adjacent planets and/or the engine's own planet satisfied the conditions at once. Changed to only trigger at most once per "reload".
- Fixed bug preventing ships from leaving cold storage if they were on a planet with > 4000 attack+threat ships (this led to capturables not being captured, zero-health ships not going away, ai ships sitting there and not firing and not fireable-upon, etc).
- The galaxy map filter for detection of hybrid hives and hybrid hive facilities now works properly when fog of war is off.
- The Unity resolution configuration screen is no longer allowed to be opened. It was pointless, anyway, as the game overrides it.
- The "runsim" command line argument was previously crashing the game when used. As it's no longer supported, it's now been removed.
- Previously, shot damage was only being reduced by 75% at the time of attack, not when the shot damage was actually being calculated for things like estimated damage display. Fixed.
- Previously, shot damage was being capped at the maximum health of the target at the time of firing. Fixed.
- Previously, if overkill damage was being dealt to an enemy ship, it would self-heal, self-damage, or help-with-replication at the overkill amount rather than the actual amount of damage needed to kill the ship. Fixed.
- Previously, shots that self-heal, self-damage, or help-with-replication, were taking effect when they were shot, rather than when they hit. This was particularly troublesome with self-damaging shots, which could cause a ship to massively over-damage itself for very little gain. Fixed.
- AI MRS and Fortresses were still repairing broken golems preemptively. Fixed.
- When the game is unable to unlock a bonus ship type for human players/home-planets that is unique for their team (usually due to playing with a lot of players on the simple ship types with no or few expansions), it now unlocks something that is unique for each player instead of for the team as a whole. The only time players would get nothing is if they already had all the ship types available.
- Previously, the game had a chance to sometimes hang if it was unable to unlock a new bonus ship for a player at various junctures. Fixed.
- The WithSelection context is now only active in planet-view, never in galaxy-view. It now also overrides any conflicting PlanetView binds. These two changes should resolve some really confusing input-causing-multiple-unrelated-things-to-happen issues we've been seeing (including the K causing both low-power-mode and knowledge-display-filter thing).
- Fixed a fairly longstanding bug that was totally messing up the detection of whether one input context was "narrower" than another, and thus should have precedence when one if its keybinds conflicted with another active context's keybinds.
- Distribution nodes and zenith reserves will no longer be targeted or damaged by AI ships.
- Distribution nodes and zenith reserves that are scrapped will now give their proper benefit.
- The ship caps and other stats in the planetary summary are now always synced with the local player's stats. Previously they often used global defauts that weren't correct for the current game.
- Put in a fix that should make it harder for AI ships to be brought out of low-power-mode when the player attacks and then drop back into low-power during the battle.
- Fixed odd bug with the code that sends updates on planets (specifically on the wormholes, in this case) to the AI thread.
- Fixed up some age-old nonsensical code from the AI thread, the unclarity of which had been the cause of some recent bugs with threat accumulating.
- Fixed a major longstanding typo in the AI loop dating back to sometime pre-3.120, wherein huge numbers of the AI's planets often would not be evaluated for AI logic, attacking, etc. Actually, depending on the circumstances of the savegame, it could affect no planets or it could affect virtually all of them. In one example save from Spikey00, for instance, it was only processing 4 planets out of 120 for the AI... with the result that over 17,000 ships accumulated in threat.
- This one took forever to track down, but was super worth it. A lot of the "why didn't the CPA ships actually attack" issues probably trace back to this. Not sure why exactly this issue has been seeming more prevalent in the last week (perhaps related to the other, more recent issues reported in the line item above), but it's very clearly some code that dates all the way back to the initial import to Unity and before.
- Previously, AI ships that were being "coordinated" by other AI ships (such as hybrid hives) were counting as threat. Fixed.
- Fixed a since-the-port-to-Unity bug with ships being selected, where if you drag-selected once it would select military-only, and then on the second time over the same group it would select all.
- Fixed a number of issues with per-planet AI ship count limiters kicking in when they should not have been. This is most notable for things like AI starships that are included in a wave to an AI planet, or just included to a planet in general, for instance. Now only guarding or planetary roamer ships are even included in the ship caps -- free/threat ships, special forces ships, etc, don't count, since they are all transient, anyhow.
- Fixed a bug that could cause uv textures to become accidentally flipped.
- Fixed a hang-causing bug in processing the removal of a ship with coordinated underlings (like a Hybrid).
- Fixed bug that could result in resistance fighter ships built by a human player at a resistance colony being produced as minor faction units and thus not costing energy (until the game was saved and reloaded, apparently, potentially resulting in a nasty shock).
- Fixed some bugs with the Resource Flows tab of the Stats window where it wouldn't include everything that was causing an impact on metal or crystal (notably self-building turrets, etc).
- Fixed a bug that could cause "ghosting" of old graphics (and thus both incorrect drawing as well as performance degradation) in certain circumstances. We never actually saw evidence of this occurring in AI War -- we found it via Tidalis -- but it's something that definitely could have been happening, especially temporarily as images were being loaded in to the game.
- The logic used for most minor faction and zombie ships for deciding to move on to a different planet should now ignore the presence of any enemy target that they are incapable of actully hitting (so neutral and player-ally Dyson Gatlings won't get stuck because of mk5 ships on the planet, etc).
- Fixed bug where neinzul clusters were only checking for non-mine military enemy units to see if they should spawn their internal squadrons. Now checks all enemy units. Will still not trigger on scouts unless it's a privacy cluster (though it will trigger in that case, it hasn't been for a while).
- Reworked the AutoCreateUnitOutside behavior used by Neinzul Clusters and Hybrid Hive Spawners to not require that the source ship still exist when the command is processed, and to be triggered on death, so that taking out a cluster in one shot does not bypass its spawning of its internal squadrons.
- AI ships that are immune to force fields will never now prioritize attacking them over ships under it (this makes raid starships way more dangerous than before in the hands of the AI, incidentally). It was previously simply a property being mis-applied on some ships that later got ff immunity belatedly. Now it automatically removes that flag for anything with the immunity.
- All guardians are now immune to being insta-killed.
- Fixed an inaccuracy in the Zenith Reserve tooltip.
- Fixed an inaccuracy in the decoy drone description.
- Previously, using 0 as the seed on some map types could cause the game to lock up. Fixed.
- Fixed an inaccuracy in the Tachyon Guardian description.
- Fixed a longstanding bug where modules would not always draw on top of their parent ship.
- Fixed an extremely longstanding bug (since pre-1.0) where in certain rare circumstances, specific harvesters could not be built.
- Fixed an inaccuracy in the Armored Golem description text.
- Clarified the description text on Zenith SpaceTime Manipulators and Speed Boosters to note that they affect all friendly ships EXCEPT minor faction ships (in other words, your ships and allied human ships).
- Previously, speed boosters and similar could override the cap of things like gravity drills, which made combos like gravity drills plus logistics command stations ridiculously overpowered. Fixed.
- Fixed a bug in the resource flows that could previously cause self-building ships to stall out, most notably force fields under some various circumstances (such as being shot, but not just limited to that).
- Fixed a bug that could sometimes cause the health of a self-building ship to be artificially too-high. This could cause all sorts of problems, such as engineers ceasing helping to repair it, etc.
- Fixed a related bug that could sometimes cause the remaining time-to-build to be massively incorrectly reported.
- Previously, EMP detonations were causing force fields to blink on and off rather than disabling them completely. Fixed.
- Fixed an issue that previously existed where when ships were group-moving and speed-boosted, but some of the ships were immune to speed boosting, and those ships would then get left behind.
- Previously, very old games were not having their AI units upgraded to their new counterparts properly. Fixed.
- Previously, the "Show Ship Recharge Bars" setting was not properly being read out of the settings file into the settings visual display, causing it to reset to the default if players closed the application and later restarted it and opened the settings screen again. Fixed.
- Fixed bug since the first Unity versions where disabling a trial-mode expansion would not fully bring the game out of trial mode (even if it was the only trial-mode piece left) until you restarted the application. This also fixes the same bug for when a valid license key was actually entered and previously the game had to be restarted before that key fully "took."
- If a handicap was previously set on a player, then it wouldn't get reset properly when a new game or tutorial was started. This is a bug going all the way back to 1.0 or before, apparently. Fixed.
- Previously, the Zenith Power Generator did not show up in the reactors quick-button lists. Fixed.
- Fixed a bug that was causing the Warp Jumper AI type to not always be able to attack any human planet that wasn't warp jammed.
- Previously, when a bully or assassin AI type could not find a valid planet to attack belonging to the weakest/strongest player (respectively), they would warp in to ???. Now they will warp in against other players if their favorite target is not available.
- Put in more exception-preventing code in the single-select dropdowns to prevent a rare issue.
- Fixed loooooongstanding bug where a completed game would not show up on the high scores list if another record was already there with the same map seed and a higher score. It will now prefer a record with the IsGameOver flag, even if the score is equal or lower. Also made it log the game result more promptly after IsGameOver is set.
- Fixed several typos in the tutorial.
- The speed floor for Speed Racer and tag teamer ships wasn't working correctly with the new way that the combat style speeds are applied (as in, it was correct only on Epic). Fixed.
- The global "speed limit" was previously 150, including various speed boosts, etc. However, the "silent doubling" for player ships was applied after that. This meant that in the last version, the speed of player ships was now capping out at 150 instead of 300. Worse, because the combat style speed bonuses were previously after-the-speed-limit as with the silent doubling, those were also getting capped at 150... rather than 1200 in terms of blitz for player-controlled ships. Yikes. The new speed cap is now 1400, to account for the cumulative old cap plus a little extra wiggle room to account for even-speedier ships.
- The gravitational turret mark II/III health was unintentionally lower than mark I. Fixed.
- Previously, the "Can't use wormholes" tag was uselessly applied to mark II/III command stations. Fixed.
- En-dashes and Em-dashes are now automatically converted to hyphens when checking license key validity. This prevents issues with players typing the wrong kind of dash and it saying their license key is not valid.
- Previously, the low-power hotkey (K) would not toggle ships with build queues. Fixed.
- Fixed longstanding bugs with icon-grouping that would cause ships and health bars to be drawn in spurious places.
- Fixed bug that was having multiplied-by-square-root-of-target-armor (zenith polarizer) and multiplied-by-100-minus-percent-of-target-health-remaining (youngling vulture) attack power calculations use the minimum and maximum multipliers of the _target_ rather than the attacker. Now uses the attacker's min/max. FYI, the polarizer is supposed to have a min/max of 4x/100x and the vulture is supposed to have a min/max of 10x/90x (the defaults both was getting most of the time were 1x/100x).
- Fixed a longstanding issue that affected a very small number of players (but more recently was suddenly more widespread... actually a good thing in terms of finding and fixing it) where the mouse edge scrolling did not work properly in some circumstances, most notably in windowed mode. The explanation on this one is long and convoluted: http://www.arcengames.com/mantisbt/view.php?id=937#c7847
- Previously, using very high or low speed modifiers would cause explosions and similar to have the inverse amount of animation speed from what they should have. Fixed.
- Converted away all internal references from Time.smoothDeltaTime to our own Game.Instance.GameDeltaTime, which prevents occasional skipping and lag in certain animations and scrolling the background stars as players pan the view, etc.
- Previously, the Neinzul Enclave Starship mercenaries used the old graphics for the actual ship, but the new graphic for the icon. Fixed.
- The objectives window will no longer act like nuked planets can be knowledge-gathered.
- The lobby Map Type, Campaign Type, Minor Faction, and AI Plot lists now properly update when an expansion is enabled or disabled in the lobby expansion list.
- Auto-explore/Auto-gather-knowledge orders were previously not being persisted through save/load, but now are.
- Auto-explore/Auto-gather-knowledge orders were previously not clearing when a ship was given another direct order, but only when given the "stop" order; they now clear whenever the ship clears all its commands (generally when given an order to do something else without the shift key held).
- Previously it was possible for using the "quick buttons" at the bottom to select ships in such a way that ships from multiple distinct planets were in your selection, leading to various problems like unintended orders. Now when using the quick buttons the selection will be completely cleared first.
- Removed the Map Button context menu from the list on the input-bindings screen, since it didn't actually have any bindings and would cause an error if you tried to open it.
- Added a couple missing localization strings for the edit-binding screen.
- Fixed a bug where very high-sensitivity mice could actually have their inputs periodically rounded down to zero when edge scrolling, or where having a very high performance profile could cause this even with normal mice.
- Fixed inaccuracy in Riot Tazer tooltip.
- Ship modules now automatically take on the cloaking status of their parent ship.
- Previously, AI ships would remain in cold storage if there were only cloaked player ships on a planet, which was problematic with things like spire penetrators. Fixed so that it only does this for ships that are cloaked AND which have no attack power (aka, scouts).
- Previously, when a ship that was actively tractoring other ships was loaded into a transport, it was still tractoring those ships. Fixed.
- Fixed a number of text wrapping and overlap issues in the ship hover window.
- Zenith Mirrors are once again immune to blades, to prevent cutlasses from one-shotting themselves against the mirrors.
- Previously, group movement could override the effects of gravity beams and drills. Fixed.
- There was also some logic that was previously causing ships to be capped at 2x their normal movement speed from some but not all kinds of speed boosters. That was some old logic that hung around too long, apparently. Fixed.
- Previously, there was a bug that was causing ships that were immune to gravity effects to not be able to be speed-boosted when group moving. Fixed.
- Previously, the total number of allowed lines in the alerts window was 16. That meant that if there were a ton of waves plus other messages, some messages could be invisible. Fixed.
- Scouts, spirecraft scouts, and spirecraft jumpships are now immune to being swallowed. Scout starships already were.
- When an EMP goes off, it is now assured to hit AI ships that were in cold storage; apparently in some rare circumstances previously it was able to miss ships in cold storage. Since this bug could possibly also happen with tachyon warheads, a safety check was put in place to make sure that was prevented, too. Nukes were already assured of not having this problem.
- A pretty sweeping internal change has been made for how group move is tracked and applied. This should hopefully resolve all the problems with the mixtures of group moving and speed boosting and speed-boost-immune ships.
- This may cause some accidental bugs if we typed something wrong (that's the architecturally-dstructive part, and why we avoided doing that before), but it should also fix the actual bugs it's meant to fix.
- The core of this change is basically tracking two group move speeds, rather than one: slowest boostable speed, and slowest non-boostable speed.
- Ships in savegames that are already group-moving might be still acting briefly wrong. Simply giving them another group-move order will straighten them out, if so. By "briefly wrong," we mean that they might be moving too fast or too slow compared to what they really should be, the same as they were already moving in the old savegame.
- This should also fix the "player ships are always moving too slowly" bug that was in the last version (it was really just a group-move thing).
- Fixed bugs with ship coordination where ships left behind on a planet by the coordinator could get _really_ confused about whether to go to the appropriate wormhole to catch up or to go to the coordinator's coordinates.
- Fixed a bug with various beam weapons where the firing ship would stay slightly out of range and the beam wouldn't hit anything. Will now always fire such that the beam will reach the primary target (unless stopped by some other object, in the case of human and spire beam weapons).
- The Resource Flows tab of the stats screen now uses LastEnergyProduced instead of UnitData.EnergyProduction for reporting positive energy flows, thus fixing the bug where it was inacurrately reporting the energy contribution of poor-efficiency reactors.
- The tooltips for the various random ai type options in the lobby now refresh properly when expansion-enabledness is changed, etc.
- Fixed textual bug that was making the "abilities" line in ship data always reflect high-cap numbers (notably, for armor piercing), now refreshes the abilities line if the cap has changed since the last time.
- The Bonus-ship-type-detail-window used on lobby mouseovers now snaps to the bottom of the screen rather than displaying from the same top-left as the options window if it's too tall for that to fit on the screen.
- Put in some changes to the per-second logic for command stations to make it much less likely that the auto-construction controls would "double-build", by making a command station wait about 3 seconds after being constructed to start looking at auto-build stuff, and also wait at least 1 whole second (and potentially 2) between checking the logic instead of potentially checking it at the end of one second and again at the beginning of another.
- When drawing in-game, the Settings window now snaps to the top of the screen rather than the bottom of the resource bar when the resolution is not tall enough to accomodate both.
- Fixed a surprisingly longstanding (but heretofore unrecognized) bug that was making the random number generator sometimes be highly non-random. This was leading to things like a very odd default pattern of collision offsetting.
- Really, this changes EVERYTHING about the seeding in the game. Map seeds now will give completely different (and much more varied) results, there will be less "false statistical clustering" going on, and even the patterns of where guard posts are seeded in planets looks pretty different. This bug dates back to March 6, 2009, before the game was even released -- one of the longest-standing bugs we've seen, especially of this magnitude.
- This also seems to fix the "all new ships seed in a line" bug that has been around for a while.
- Fixed another couple of bugs where the game's random number generator was recently not as random as one might have hoped. These were much more recent, in the main, as issues.
- Fixed some bugs that were inflating AI Eye seeding by roughly 2x.
- Fixed a bug that may have been causing AI ships to aggro when firing on a minor-faction ship.
- Previously, only mark V guard posts were immune to being insta-killed. Now they all are.
- Previously, the AI could still get gravitational turrets from the Zenith Trader. Fixed.
- Minor Faction ships are no longer barred from shooting at low-power AI ships. This fixes some issues with the devourer not doing its job, as well as the dyson gatlings not doing their thing always, too.
- Fixed bug where auto-knowledge-gather ships would "give up" after a few planets, even if more eligible ones were available.
- Previously there was a bug where the ship icons on the galaxy view intel summary would appear even when the proper scouting had not been done. Fixed.
- Allied minor faction ships (including asteroids) are no longer able to be seen in the planetary summary sidebar on planets where the player does not have a scout.
- Since the port to unity, the cloaked enemy ships indicator was never showing on the planetary summary sidebar. This was a pretty handy indicator, especially for helping with confusion for newer players, and it has finally been brought back.
- Previously CPA size was not scaled with unit caps. Odd that it's taken so long to notice. Anyway, fixed.
- The game will now check Enter and Return together, like it does leftalt/rightalt, etc. This should help clear up some confusion with the chat textbox on certain OSX keyboards.
- Fixed a couple of murky pieces of code that could have been desyncs, but probably were not. At least they are clearer as to being correct, now.
- Fixed another really obscure desync that no one had actually run into yet. It would only occur if one player had their UI turned off and the other didn't, and a grenade went off.
- Fixed a desync that would occur whenever the harvesters were reset in a multiplayer game.
- Previously, enemy-to-all minor faction units (like marauders and some roaming enclaves) could get protection from human forcefields, counter-sniper turrets and the like. Fixed so that these particular units cannot get those protections from any source at all (none of them have such inherently, and being an enemy-to-all precludes getting them from anyone else).
- Fixed a potential desync bug related to objects tracking which ships they've shot so far in a cycle.
- Ships that emit attrition effects are now immune to cloaking and camouflaging.
- Fixed a relatively longstanding error (since unit cap scale was introduced) in wave size computation: previously the wave size would be multiplied by the unit-cap-scale-multiplier (high = 1, normal = 0.5, low = 0.25) and then later by the ship-type-specific ship cap multiplier (e.g. on high fighter = 1, sentinel-frigate = 0.1, zenith-bombard = 0.25); the problem is that thte ship-type-specific cap was _already_ multiplied by the overall unit-cap-scale multiplier. So waves on high had the correct size, normal waves were 1/2 the correct size, and low waves were 1/4 the correct size.
- Since the balance of wave sizes has been generally acceptable lately, we don't want to just totally shatter that to fix this math mistake on our part. Instead we are fixing that but also dividing the base size of waves by 2. So waves on normal will continue to be the same size as before, waves on high will actually be half the previous size, and waves on low will be double the previous size.
- Fixed a longstanding bug where the lobby bonus-type tooltips would always display ship caps as if the base cap were 100 instead of 196.
Community Contributors
- We wish to express our gratitude to our community for its tremendous help in testing, bug reporting, suggestions, patience, good humor, and encouragement. In particular, the following members have helped us with at least one bug or suggestion (the number in parenthesis is a rough count of the number of distinct cases they helped with) :