AI War:4.000 Release

From Arcen Wiki
Jump to navigation Jump to search

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.
  • The combined release notes for those 81 betas total over 300 kilobytes of text.

Highlights

  • Added a context menu which provides easy access to the various special move modes, the new micromanagement-saving Auto-Explore and Auto-Gather-Knowledge, and the new special unloading menu for transports.
  • Knowledge raiding has been completely rebalanced to no longer be easy or necessary, returning it to the proper role of "last ditch effort to get out of a hole".

AI Updates

  • A semi-major new "Scrap Wave" mechanic has been added for the AIs. Any time there are more than 150,000 ships currently in the game, and comparably little is going on in terms of threat/attack/wave counters, the AI will scrap a large number of its ships and then send a wave that is half the size of the number of ships scrapped.
    • The AI is prejudiced toward scrapping and sending the lowest-tech mobile military it has, but that will really vary based on what it has available. If all the AI has is Mark V stuff, this will be a much worse event than if the AI still has a lot of lower-tech stuff.
    • In general, the size of these waves is 1,000 ships multiplied times the difficulty of the first AI player. The number of scrapped ships will be about twice that.
    • Generally if there are more than about 1,000 threat/attack/wave ships already out in the galaxy, then the AI won't do a scrap wave. Otherwise it will do continuously scrap waves, one after the next, until it is back down to fewer than 150,000 ships.
    • In the end, if you're like most AI War players you'll never-ever see this mechanic at all. But if you've got a beast of a machine and love playing 30+ hour-long games on the largest maps, then this will help keep things from bogging down completely.
  • AI players are no longer allowed to reinforce their planets if there are more than 175,000 ships currently in the game.


General Large Gameplay Additions

Co-Op Improvements

Performance Improvements

  • Some internal networking changes have been made as the start of phasing in a new, more memory-efficient network/savegame format over time. These first changes add a very slight bit of memory/CPU efficiency on the game host, including in single-player games, but mostly they are laying the groundwork for more extensive future changes.
  • Made a rather notable performance improvement to ship explosions (which are just visual, not part of the simulation itself):
    • Explosions on other planets or otherwise out of your view no longer actually happen, thus saving a goodly amount of sim CPU load when taken in aggregate.
    • When in far zoom, the little debris is too small to see with explosions anyway, so it now doesn't render that, either. That only happens on larger ships anyway, but this saves the GPU and CPU load of both generating and then rendering this. A much more minor update than the first, but still notable.
  • A significant new early-out performance improvement has been made for range checks. Especially when there are a lot of ships that are out of range of a battle on a planet (such as those at other guard posts), this now has a notable boost to performance.
  • Some performance increases, notably for cases where there are a ton of human ships on a planet with no AI ships. These changes may result in it taking a little longer for a ship's protections (being under a forcefield, counter-shooter, etc) to update, and for engineers to find something to auto-assist when idle.
  • A number of small performance improvements all throughout the application, moving away from the System.Drawing structs to custom ArcenPoint, ArcenRectangle, and ArcenSize structs. These structs are more efficient in terms of RAM and CPU, and are Unity-compatible, which the others were not.
  • The seek CPU efficiency of teleporting engineers has been increased significantly.
  • TryFindAssistTarget (engineers looking for something to repair or assist) is now separate from the TryFindOtherTargets throttle, and has been cranked down since those searches can take so long.
  • TryFindTachyonTargets (tachyon emitters checking for cloaked ships in rage) is now separate from the TryFindOtherTargets throttle, and is fairly generous since even a partial second's delay can make a difference between your turrets eating the raptors for lunch and the raptors eating your command station for theirs.
  • Some performance improvements to collision checking, target list filtering and sorting, and the generic basic range checking function.
  • Some performance improvements to the "move ship" logic that handles a lot of every-cycle logic for non-cold-storage ships.
  • A minor performance improvement to CheckForTargetListUpdate.
  • Added a separate throttle category for ships that have only overkill targets, so that those ships are more likely to update their target lists in a timely fashion when non-overkill targets show up.
  • Some small performance improvements in overall main loop code and AI determination of "how much strength is protecting ship X".
  • A major refactoring in the internal codebase has taken place, fixing a number of bugs and also leading to some performance gains (mainly RAM more than CPU, but also some CPU).
  • Some more efficiency improvements to the AI thread.
  • More internal optimizations that make loading savegames faster than ever, reduces RAM use a bit more, and somewhat lowers the overhead of having a lot of ships moving around in the galaxy. Also makes rendering lots of ships on the screen slightly more efficient, and corrects a few display-related bugs.


Interface Improvements

  • Added context menu; the default context menu for your current context can be opened via Alt+Right-click. There is also a keyboard-only bind that you can set if you want to be able to open it at one keypress.
  • Added "Special Move" item to context menu (when you have ships selected, on planet view) that allows setting of group/formation/attack/frd/queued flags via mouse rather than the various (and sometimes obscure) key combinations.
  • Added "Stop" item to context menu (when you have ships selected, on planet view) that emulates the "end" key command that cancels all standing commands, formation (if you're on sticky formations, those don't clear with normal moves), etc.
  • Moved Auto Explore command from the A+E+X key combination to the context menu (only when you have selected ships and at least one is a scout).
  • Auto Explore now functions in the absence of unexplored planets (either you've explored them all or you started with all explored), and applies similar auto-pathing logic to unscouted or not-scouted-recently planets (preferring the unscouted, then the not-scouted-for-5-hours, then the not-scouted-for-1-hour, etc).
  • Auto Exploring scouts no longer try to evade after exiting a wormhole, instead they should shortly pick a new exploration/scouting destination and get moving that way.
  • Auto-explore is now non-random and much more even in deciding between equidistant planets of the same level of "I need to scout this". So if you have 5 unexplored (or unscouted, in an everything-starts-explored game) planets connected to your home world and build 10 scouts there and put them on auto-explore, 2 each will go to each of those 5 planets. At least, that's the idea.
  • Existing "counter-shot radius" drawing logic (which also draws tractor range, tachyon range, etc) will now draw engineering range if the ship has one and does not have a counter-shot or other auxiliary range.
  • Added "Auto Gather Knowledge (Science Only)" to the context menu. When executed, selected science ships will be automatically issued the following orders:
    • if not on friendly planet, no orders
    • else if on friendly planet but there's knowledge left to get, and not under a strong forcefield:
      • if command station is under strong forcefield, set destination to that forcefield
      • else if there are allied forcefields on the planet, set destination for the one nearest to the command station
      • else set destination for the command station
    • else if there's a planet I can reach through a friendly-planet-only path that has knowledge left to get, set destination to the nearest one (if there are more than one equidistant it picks the first one in the list every time, no random, so groups on one planet will all go to the same other planet).
    • else no orders (but periodically check again)
    • (note: friendly planet is defined as a planet with an orbital command station owned by a player on the same team as the science ship's owner)
  • When the energy count is being shown for ships (either by pressing Alt+A, or via the net energy being low for you), transports now show their own energy plus that of all the ships inside themselves.
  • Command Stations are now shown on the Planetary Summary icon lists on the galaxy map.
  • The DEF build category was really a misnomer at this point, and has been renamed to SUP instead (Support instead of Defense, which more accurately describes those ships).


Graphical Improvements

  • Updated icon for Heavy Beam Cannons to a new graphic donated by HitmanN.


New Ships

  • Added Flak Turrets: mkI, mkII, and mkIII. Graphics donated by HitmanN (with preliminary work and idea by superking, many thanks to both). The Flak Turrets have only received preliminary balancing, intended to be good against zenith viral shredders, cutlasses, and vampires, and mediocre against other very light ships, and only minorly effective against anything much bigger)
  • Two new units have been added: Fortress, and Fortress Mark II, which are scaled down (and cheaper) versions of the Fortress Mark III.
  • There are now three separate levels of basic AI command stations, same as the basic human command stations have three levels.
    • The AI command station variants have 5X more health than their human counterparts, and no longer have the human-specific abilities such as resource/energy production, warp detection, build menus, etc.
    • The AI command stations are now the only ones that cause AI Progress to increase. That was previously already the case (the AI Progress went up only when a command station controlled by the AI was destroyed), but now that these are two separate units the tooltips are substantially briefer and clearer.
    • Existing savegames and new games now use only AI command station variants for the AIs, as follows:
      • On the AI home planets, they use AI Core Command Stations (same as always).
      • On Mark I and II planets, they use AI Command Stations Mark I.
      • On Mark III planets, they use AI Command Stations Mark II.
      • On Mark IV planets, they use AI Command Stations Mark III.


Ship Logic Updates

Balance Updates

  • Orbital Command Station upgrades now provide more metal/crystal income, in order to make those upgrades more worthwhile. If you consider that an individual harvester produces 12 of metal or crystal, and if you consider how many harvesters can be built on most planets versus how much knowledge is required to get the command station upgrades, the upgrades were previously of lesser value than they should have been.
    • Mark II now provides 40 of each instead of 28 of each.
    • Mark III now provides 64 of each instead of 40 of each.
    • For the sake of comparison, the Mark I still produces 16 of each, and the Home command station still produces 80 of each.
  • Science Lab, Science Lab Mk II,and Advanced Research Station can no longer gather knowledge from AI-held planets.
  • Added Stationary Science Lab (Mk III) that can gather knowledge from AI-held planets, but costs nearly 4x as much as a MkII lab and normal construction takes half an hour.
    • Also, it doubles the reinforcements of the AI at that planet, and enrages all of their ships so that they'll attack the lab. You really need a solid beachhead and a lot of incentive (or to have neutered the planet already) to do a knowledge raid now.
  • Science Lab Mk II move speed from 16 to 20, knowledge gather rate from 2 to 3.
  • The amount of available knowledge per planet has been increased from 2,000 to 3,000 to account for the influx of all the cool new technologies that people are able to play with. This also rebalances the game a bit in light of recent difficulty increases, and further marginalizes the need for knowledge raiding on any sort of regular basis.
  • Transports are now such a core part of the game that they are something to always unlock. Thus that was simply a penalty of 1000 knowledge that always had to be incurred. Transports no longer have to be unlocked.
  • Mobile Repair Stations are far more powerful than they once were; their knowledge cost has been increased from 2,000 to 4,000. Their metal and crystal costs have also been tripled, to 18,000 and 9,000, respectively. Their health has also been reduced from 390k to 300k. This encourages players to not lose them, and keep them near but not right on top of the front lines, which thus makes them not so overpowered.
  • The knowledge costs of engineer drones mark II and III have now been reduced by 1,000 each.
  • Mobile builders now use 100 energy instead of 1500. Cleanup Drones now use 25 energy instead of 150, and Remains Rebuilders now use 25 energy instead of 1500. Engineer drones now use 1000, 500, and 250 energy for marks I-III instead of 4000, 2000, and 1000. The experimental engineer now uses 4000 energy instead of 12000.
    • These changes all make it more effective to keep a larger fleet of the various sorts of engineers around, whereas before there was too much incentive to need to micro them when energy was low.
  • The energy cost of the missile silo has been increased from 40k to 80k.
  • The energy cost of all the starship lines has been doubled, except for the raid and leech starship lines.
  • The attack power of the fortress has been halved, but the number of shots it gets has been quadrupled.
  • The number of shots that the superfortress gets has been doubled.
  • The knowledge cost of unlocking the flagship has been reduced from 2000 to 1000.
  • The knowledge cost of unlocking the spire starship has been increased from 4000 to 6000.
  • The knowledge cost of unlocking the Mark I dreadnought has been increased from 1000 to 1500.
  • The knowledge cost of unlocking the Riot Control Starships have been increased from 1500, 2250, and 3250 for Marks I-III to 2500, 3500, a 4500.
  • The knowledge costs of Tractor Beam II and III turrets have been increased from 1000 and 2000 respectively to 2000 and 4000.
  • The knowledge costs of Gravitational Turrets III and III have been reduced from 4000 and 6000 to 3000 and 4000.
  • The knowledge costs of Laser Turret II and III have been increased from 2000 and 3000 to 2500 and 3500.
  • The knowledge costs of MLRS Turrets II and III have been reduced from 2500 and 3500 to 2000 and 3000.
  • The knowledge cost of the Counter-Missile Turret has been increased from 2250 to 4000. The effective range of counter-missile turrets has been increased from 1400 to 6000.
  • The effective range of Counter-Dark-Matter Turrets has been increased from 1400 to 8000, and the effective range of Counter-Sniper Turrets has been increased from 1400 to 4000.
  • The metal/crystal costs of all the Counter turrets has been quadrupled, and the energy use of them has all been doubled.
  • The health of Mark II Leech Starships has been increased from 160k to 320k, and the health of Mark III Leech Starships has been increased from 160k to 480k.
  • The following munitions boosting range changes have been made:
    • Light Starship from 900 to 3000.
    • Flagship from 1100 to 4000.
    • Zenith Starship from 1200 to 5000.
    • Spire Starship from 1400 to 6000.
    • Core Starship from 1600 to 8000.
    • Mark I Munitions Boosters from 1200 to 5000.
    • Mark II Munitions Boosters from 1400 to 6000.
    • Mark III Munitions Boosters from 1600 to 7000.
    • Mark IV Munitions Boosters from 1800 to 8000.
  • The munitions boosters are only able to boost a certain number of ships based on the "circular area" of those ships compared to the range of the munitions booster. By increasing the ranges so much, that would therefore have made munitions boosters vastly more powerful.
    • Instead, the circular area that is actually allowed has now been divided by 6.
    • This actually weakens the lower-end munitions boosters by a bit (in terms of how many ships they can boost), but at the same time their vastly increased range makes it so that (such) precision placement of them is no longer needed for the optimal effect on a fleet, and the highest-tier munitions boosters are actually stronger than they were before.
    • The overall effect is thus to make these far easier to use effectively, and to create more of a power gradation between the lower-tier ones and the higher-tier ones.
  • The following shield boosting range changes have been made:
    • Mark I Shield Boosters from 600 to 3000.
    • Mark II Shield Boosters from 800 to 4000.
    • Mark III Shield Boosters from 1000 to 5000.
    • Mark IV Shield Boosters from 1200 to 6000.
  • Previously, armor boosters (previously shield boosters) did not have any limits on how many units they could boost; they were simply limited by their incredibly small boosting ranges. Now they follow a "circular area" limitation that is exactly like that of the munitions boosters.
  • Attrition Emitters can no longer be paused, and now only use 10k energy instead of 18k.
  • The energy use of Zenith Electric Bombers has been reduced from 10k to 1k (except for the Core variant, which is now 2k).
  • Cloaker Starships also now provide both counter-sniper and counter-dark-matter protection, in addition to their cloaking duties.
  • Scouts and Cloaker Starships now have a much-increased cloaking booster range. This does not affect how many other ships these units can boost, however, as there was already a finite cap on that.
  • Ships in transports now still cost the normal energy they would cost outside the transport.
    • Previously, transports could be used to too great of effect in terms of minimizing energy needs simply by loading ships into them.
  • The SuperFortress has been buffed again, and the Fortress line has been tweaked in general. Fortresses now have very long range, longer than any non-sniper turrets or units, but a bit weaker attack on average than before.
  • The existing Fortress is now renamed to Fortress Mark III, and has had its stats (and costs) increased somewhat.
  • Previously, when ships that were taking internal or external attrition hit zero from attrition, they would die. Now, instead the attrition will not take them below 1.
    • Thus if an attrition-ed ship gets all the way down to 1, it's at death's door and can easily be killed by an enemy, but at the same time if no enemies are around, engineers can repair it back up to higher health. This removes some of the fiddly time-based aspects of things like the cursed golem if it's not on the front lines.


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.


Bugfixes

  • Fixed a couple of potential desyncs.
  • Difficulties 8, 9, and 10 were supposed to be getting 1 extra wave per difficulty level, but were only getting 1 extra wave overall. This was a longstanding bug, and was a big contributor to why waves seemed undersized in difficulties 9 and 10 compared to other parts of the game. Fixed.
  • Fixed hang bug that happened when generating a 120-planet spokes (or potentially tree) map with some seeds. In those cases it will now fail to place all 120 planets, but not by much, and the game won't hang.
  • Fixed bug where the local player could not place a construction using an ally's builder if the local player had exhasuted the ship cap of that unit (even if the ally still had ship cap left).
  • Fixed two internal overflow exceptions that previously could potentially have caused desyncs.
    • Both of these also lead to some small speed boost, especially for games that are already running very fast.
  • Fixed an overflow exception when ships with more than 2 billion combined health were selected together.
  • Fixed a couple of potential overflow exceptions related to focus firing (these may have contributed to desyncs in prior versions).
  • Fixed arithmetic overflow relating to the devourer golem's auto-target logic.
  • Some of the internal calculations for how ships wait at wormholes have been reworked, in hopes of making them never get accidentally stuck in cold storage or stuck just waiting permanently at a wormhole.
    • For super-high AI Progress games there was a check in particular that was causing issues here.
    • Freed AI ships are now vastly more effective at traveling between their own planets in fluid groups now.
  • Fixed bug where crystal harvesters were not properly auto-rebuilding if there were no _metal_ harvest points eligible for auto-rebuilding.
  • Previously engine-damage-focused units would not sustain fire properly on engine-dead targets if there were only engine-dead targets left. Fixed so that they should keep firing in that case.
  • Fixed a bug where the predicted path of ships on the galaxy map (shown when hovering the mouse over another planet) was different from the path actually executed by issuing a move order via right-clicking the target planet.
  • Fixed some potential desyncs for cases where a player played a game, quit it without quitting the application, and joined a multiplayer game.
  • Fixed a bug in game-loading code that was confusing the values of CloakingPartialCount and CloakingRechargeCount.
  • Fixed an obscure crash bug relating to ship movement.
  • Fixed an overflow error in the adjusted score calculations which sometimes was resulting in players with invalid reported scores.
    • Note: in the process, this also makes some subtle changes to how adjusted scores are calculated, but the effects should be minor overall.
  • Fixed a very longstanding subtle bug (from the 2.0 days) with net energy fluctuating when ships are passing through wormholes. This was extremely tough to track down, and in the end we completely rewrote the net energy handling to fix it.
  • Black hole machines will no longer appear on planets with dyson spheres, as this was causing a huge build-up of non-decaying dyson gatlings that didn't want to destroy the black hole machine (since that would cause AI progress, etc) and were thus more dangerous than intended when "freed".
  • The human-controlled Command Station Home Cores, and the AI-controlled Core Command Station, did not have their internal mark levels correctly set. Fixed.
  • Fixed a bug where using Manage Players to open a new Active slot with blank name or name of "???" and then having someone join in that slot would lead to an immediate desync.
  • Cloaking starships now check for ships to cloak after loading and before the first sim cycle, to prevent embarrassing moments when you park in the wrong lot.
  • Units now check for protections (e.g. forcefields) and supply after loading and before the first simulation cycle, to prevent some of the significant combat differences when reloading in the middle of a fight.
  • Dyson Gatlings are now immune to black hole machines. Removed the logic added in previous version that removes black hole machines from planets with a dyson sphere (as this could be disconcerting to the joker who builds one via Zenith Trader and sees it disappear when loading the game).
  • Fixed a major and subtle desync based on floating-point precision. A bit of floating point math recently slipped into part of the simulation based on some of the changes to our FInt struct, and this may have been the cause of the elusive desyncs that a tiny minority of players have been recently seeing. This fix may also have some minor performance improvement implications.
  • Fixed a bug that was causing engineers to bunch up on ships in an ineffectual manner.
  • Fixed bug where heavy beam cannons could shoot at astro trains but would never actually hit them.


Not Sure If These Are Still In

  • Guard Posts now show on the top row of the planet intel summary.